programa de eliminación de correo-virus

22/09/2003 - 21:14 por ThomasD \(dk\) | Informe spam
Un usuario danés, Uffe Kousgaard, ha elaborado un pequeño programa que
elimina los correos con virus en el servidor cada x minutos. Ademas se
crea un listado de los remitentes, asunto y otros datos que se abre en
Excell. El programa de 265KB se puede bajar aquí
www.routeware.dk/download/virus_mail_fjerner.zip
Despues de la descarga y unzip se abre el archivo .ini y se ponen los
datos del servidor pop3, nombre de usuario y contraseña. La línea mas
abajo Interval=1 significa eleminacíon cada minuto, se puede cambiar el
número a 2 cada dos minutos etc. Guardar.
Despues se abre el programa en el icono y se pincha en Start. El
programa elimina los correos virus en el servidor cada x minutos. Si en
vez de Start se pincha en Fjern nu, solamente se eliminan los que ya
están en el servidor.
Se tiene un icono al lado del reloj que abre/cierra el programa con un
click. Slettet=borrado, por minuto, por hora, Ikke slettet=no borrado.
Tengo el programa instalado y funciona perfectamente.
Si queréis id a probarlo.
thomas

Preguntas similare

Leer las respuestas

#1 Jorge Zeledon
23/09/2003 - 01:52 | Informe spam
Hola ThomasD: Creo que deberías envíar a todos los Grupos este mensaje, funciona en forma excelente.
Te has ganado las palmas y todos los laureles. Ojalá lo pruebe un [MS MVP] y lo distribuya con su credibilidad
Saludos :.

"ThomasD (dk)" escribió en el mensaje news:
| Un usuario danés, Uffe Kousgaard, ha elaborado un pequeño programa que
| elimina los correos con virus en el servidor cada x minutos. Ademas se
| crea un listado de los remitentes, asunto y otros datos que se abre en
| Excell. El programa de 265KB se puede bajar aquí
| www.routeware.dk/download/virus_mail_fjerner.zip
| Despues de la descarga y unzip se abre el archivo .ini y se ponen los
| datos del servidor pop3, nombre de usuario y contraseña. La línea mas
| abajo Interval=1 significa eleminacíon cada minuto, se puede cambiar el
| número a 2 cada dos minutos etc. Guardar.
| Despues se abre el programa en el icono y se pincha en Start. El
| programa elimina los correos virus en el servidor cada x minutos. Si en
| vez de Start se pincha en Fjern nu, solamente se eliminan los que ya
| están en el servidor.
| Se tiene un icono al lado del reloj que abre/cierra el programa con un
| click. Slettet=borrado, por minuto, por hora, Ikke slettet=no borrado.
| Tengo el programa instalado y funciona perfectamente.
| Si queréis id a probarlo.
| thomas
|
Respuesta Responder a este mensaje
#2 Miguel
23/09/2003 - 02:23 | Informe spam
ThomasD ¿cómo llega a detectar el programa que archivo de mensaje es
realmente un virus?

Miguel
http://mmyv.com



"ThomasD (dk)" escribió en el mensaje
news:
Un usuario danés, Uffe Kousgaard, ha elaborado un pequeño programa que
elimina los correos con virus en el servidor cada x minutos. Ademas se
crea un listado de los remitentes, asunto y otros datos que se abre en
Excell. El programa de 265KB se puede bajar aquí
www.routeware.dk/download/virus_mail_fjerner.zip
Despues de la descarga y unzip se abre el archivo .ini y se ponen los
datos del servidor pop3, nombre de usuario y contraseña. La línea mas
abajo Interval=1 significa eleminacíon cada minuto, se puede cambiar el
número a 2 cada dos minutos etc. Guardar.
Despues se abre el programa en el icono y se pincha en Start. El
programa elimina los correos virus en el servidor cada x minutos. Si en
vez de Start se pincha en Fjern nu, solamente se eliminan los que ya
están en el servidor.
Se tiene un icono al lado del reloj que abre/cierra el programa con un
click. Slettet=borrado, por minuto, por hora, Ikke slettet=no borrado.
Tengo el programa instalado y funciona perfectamente.
Si queréis id a probarlo.
thomas

Respuesta Responder a este mensaje
#3 Ramón Sola
23/09/2003 - 03:31 | Informe spam
Se puede ver en el código fuente Delphi (Unit1.pas) cómo lo hace:

Subject:= lowercase(Msg.Subject);
From:= lowercase(Msg.From.Name);
if (pos('abort',Subject)>0) or
(pos('critical',Subject)>0) or
(pos('failure',Subject)>0) or
(pos('internet',Subject)>0) or
(pos('mdaemon',Subject)>0) or
(pos('microsoft',Subject)>0) or
(pos('net pack',Subject)>0) or
(pos('net update',Subject)>0) or
(pos('net upgrade',Subject)>0) or
(pos('network',Subject)>0) or
(pos('security',Subject)>0) or
(pos('user unknown',Subject)>0) or
(pos('undeliver',Subject)>0) or
(pos('returned to mailer',Subject)>0) or
(pos('returned to sender',Subject)>0) or
(Subject='') or
(Subject='advice') or
(Subject='announcement') or
(Subject='bug advice') or
(Subject='bug announcement') or
(Subject='bug letter') or
(Subject='bug message') or
(Subject='bug notice') or
(Subject='bug report') or
(Subject='current pack') or
(Subject='current update') or
(Subject='current upgrade') or
(Subject='error advice') or
(Subject='error announcement') or
(Subject='error letter') or
(Subject='error message') or
(Subject='error notice') or
(Subject='error report') or
(Subject='last pack') or
(Subject='last patch') or
(Subject='last update') or
(Subject='last upgrade') or
(Subject='latest pack') or
(Subject='latest patch') or
(Subject='latest update') or
(Subject='latest upgrade') or
(Subject='letter') or
(Subject='mail') or
(Subject='message') or
(Subject='new patch') or
(Subject='new update') or
(Subject='new upgrade') or
(Subject='notice') or
(Subject='patch') or
(Subject='report') or
(Subject='returned mail') or
(Subject='returned message') or
(Subject='virus') or
// (From='') or
(pos('admin',from)>0) or
(pos('bulletin',from)>0) or
(pos('corporation',from)>0) or
(pos('delivery',from)>0) or
(pos('email',from)>0) or
(pos('microsoft',from)>0) or
(pos('ms inet',from)>0) or
(pos('ms net',from)>0) or
(pos('ms public',from)>0) or
(pos('net message',from)>0) or
(pos('network mail system',from)>0) or
(pos('postmaster',from)>0) or
(pos('public',from)>0) or
(pos('security',from)>0) or
(pos('storage',from)>0) then

Las líneas (Subject=<cadena>) evalúan si <cadena> coincide con el asunto del mensaje. Esa comparación distingue entre mayúsculas y minúsculas. Sin embargo, al haber transformado las cadenas 'from' y 'subject' a minúsculas con la función 'lowercase', ya no importa si originariamente tenían todas las letras en minúsculas, en mayúsculas o mezcladas; se comparan sin problemas minúsculas con minúsculas. En el caso de Subject='', se mira si el asunto es una cadena vacía.

Las líneas (pos(<cadena>,from)>0) y (pos(<cadena>,subject)>0) evalúan la condición "¿<cadena> se encuentra en el campo 'from' (remite)/'subject' (asunto)?".
Dada una llamada pos(s1,s2), con s1 y s2 de tipo 'string' (cadena):
Se devuelve la posición de comienzo (empezando por uno) de la primera aparición de la cadena s1 en la cadena s2, o cero si s1 no está incluida en s2. Por ejemplo:
pos('topar','gatopardo')=3
pos('iro','tiro-liro')=2
pos('f','abcd')=0

Al estar todas las condiciones unidas por nexos 'or' ('o' inclusivo, en lenguaje natural "y/o"), basta con que solamente una de ellas se cumpla (aunque pueden hacerlo varias a la vez) para tirar el mensaje a la basura.
Espero que esto sirva para comprender cómo filtra este programa. :-)
Un saludo...

Ramón Sola @ Málaga.España

Haz zapping si quieres escribirme. ;-)))
En este tipo de enfermedades, lo peor son las escuelas. (secuelas)


"Miguel" <responderalgrupo-replytogroup> escribió en el mensaje
news:uHQ#
ThomasD ¿cómo llega a detectar el programa que archivo de mensaje es
realmente un virus?

Miguel
http://mmyv.com


Respuesta Responder a este mensaje
#4 elAle®
23/09/2003 - 03:56 | Informe spam
En teoría se pueden configurar las reglas de Outlook Express para que hagan
lo mismo…





Saludos,



elAle®

"Ramón Sola" escribió en el mensaje
news:
Se puede ver en el código fuente Delphi (Unit1.pas) cómo lo hace:

Subject:= lowercase(Msg.Subject);
From:= lowercase(Msg.From.Name);
if (pos('abort',Subject)>0) or
(pos('critical',Subject)>0) or
(pos('failure',Subject)>0) or
(pos('internet',Subject)>0) or
(pos('mdaemon',Subject)>0) or
(pos('microsoft',Subject)>0) or
(pos('net pack',Subject)>0) or
(pos('net update',Subject)>0) or
(pos('net upgrade',Subject)>0) or
(pos('network',Subject)>0) or
(pos('security',Subject)>0) or
(pos('user unknown',Subject)>0) or
(pos('undeliver',Subject)>0) or
(pos('returned to mailer',Subject)>0) or
(pos('returned to sender',Subject)>0) or
(Subject='') or
(Subject='advice') or
(Subject='announcement') or
(Subject='bug advice') or
(Subject='bug announcement') or
(Subject='bug letter') or
(Subject='bug message') or
(Subject='bug notice') or
(Subject='bug report') or
(Subject='current pack') or
(Subject='current update') or
(Subject='current upgrade') or
(Subject='error advice') or
(Subject='error announcement') or
(Subject='error letter') or
(Subject='error message') or
(Subject='error notice') or
(Subject='error report') or
(Subject='last pack') or
(Subject='last patch') or
(Subject='last update') or
(Subject='last upgrade') or
(Subject='latest pack') or
(Subject='latest patch') or
(Subject='latest update') or
(Subject='latest upgrade') or
(Subject='letter') or
(Subject='mail') or
(Subject='message') or
(Subject='new patch') or
(Subject='new update') or
(Subject='new upgrade') or
(Subject='notice') or
(Subject='patch') or
(Subject='report') or
(Subject='returned mail') or
(Subject='returned message') or
(Subject='virus') or
// (From='') or
(pos('admin',from)>0) or
(pos('bulletin',from)>0) or
(pos('corporation',from)>0) or
(pos('delivery',from)>0) or
(pos('email',from)>0) or
(pos('microsoft',from)>0) or
(pos('ms inet',from)>0) or
(pos('ms net',from)>0) or
(pos('ms public',from)>0) or
(pos('net message',from)>0) or
(pos('network mail system',from)>0) or
(pos('postmaster',from)>0) or
(pos('public',from)>0) or
(pos('security',from)>0) or
(pos('storage',from)>0) then

Las líneas (Subject=<cadena>) evalúan si <cadena> coincide con el asunto del
mensaje. Esa comparación distingue entre mayúsculas y minúsculas. Sin
embargo, al haber transformado las cadenas 'from' y 'subject' a minúsculas
con la función 'lowercase', ya no importa si originariamente tenían todas
las letras en minúsculas, en mayúsculas o mezcladas; se comparan sin
problemas minúsculas con minúsculas. En el caso de Subject='', se mira si el
asunto es una cadena vacía.

Las líneas (pos(<cadena>,from)>0) y (pos(<cadena>,subject)>0) evalúan la
condición "¿<cadena> se encuentra en el campo 'from' (remite)/'subject'
(asunto)?".
Dada una llamada pos(s1,s2), con s1 y s2 de tipo 'string' (cadena):
Se devuelve la posición de comienzo (empezando por uno) de la primera
aparición de la cadena s1 en la cadena s2, o cero si s1 no está incluida en
s2. Por ejemplo:
pos('topar','gatopardo')=3
pos('iro','tiro-liro')=2
pos('f','abcd')=0

Al estar todas las condiciones unidas por nexos 'or' ('o' inclusivo, en
lenguaje natural "y/o"), basta con que solamente una de ellas se cumpla
(aunque pueden hacerlo varias a la vez) para tirar el mensaje a la basura.
Espero que esto sirva para comprender cómo filtra este programa. :-)
Un saludo...

Ramón Sola @ Málaga.España

Haz zapping si quieres escribirme. ;-)))
En este tipo de enfermedades, lo peor son las escuelas. (secuelas)


"Miguel" <responderalgrupo-replytogroup> escribió en el mensaje
news:uHQ#
ThomasD ¿cómo llega a detectar el programa que archivo de mensaje es
realmente un virus?

Miguel
http://mmyv.com


Respuesta Responder a este mensaje
#5 Ramón Sola
23/09/2003 - 04:13 | Informe spam
Interesante... Tengo dos observaciones que hacer:

Primera:

El programa está preparado para comprobar una única cuenta de correo. Si queremos comprobar dos o más (siempre POP3), debemos crear tantas carpetas como cuentas de correo, copiar los ficheros Fjern_MS_Virus.exe y Fjern_MS_Virus.ini en cada una de ellas, y editar los distintos ficheros .ini con los datos de cada cuenta. Para comprobar una cuenta determinada, ejecutar el .exe de la carpeta correspondiente.
Para usuarios más avanzados, se puede mantener sólo una copia del ejecutable en una carpeta determinada y crear varios accesos directos al mismo cambiando el directorio de trabajo (en Windows 9x, campo "iniciar en").

Segunda:

Este programa tiene una pequeña deficiencia: Siempre se conecta por el mismo puerto, el 110, y no hay posibilidad de cambiarlo. Por ejemplo, puede suponer un problema si se usan programas como Hotmail Popper, un "traductor" de comunicaciones HTTP (Hotmail y MSN) a POP3 -muy útil para aplicaciones como Magic Mail Monitor, que sólo admite cuentas POP3-, que se pueden poner a "escuchar" en un puerto distinto al habitual. Ese cambio de puerto se podría justificar por diversas razones.
Imagino que el autor del programa no contempló dicha posibilidad por no necesitarla él. Afortunadamente, este señor distribuye la utilidad con su código fuente, lo que permite mejorarla fácilmente (bueno, eso depende de los conocimientos de programación y de lenguaje Delphi que tenga uno, claro).

Los cambios que sugiero son estos:

Antes:

interval,maxperint,deleted: integer;

Después:

pop3port,interval,maxperint,deleted: integer;

Antes:

pop3host:= s.ReadString('main','pop3host','');
pop3user:= s.ReadString('main','pop3user','');
pop3password:= s.ReadString('main','pop3password','');
testing:= (s.ReadInteger('main','autostart',1)=1);
interval:= s.ReadInteger('main','interval',1);

Después:

pop3host:= s.ReadString('main','pop3host','');
pop3user:= s.ReadString('main','pop3user','');
pop3password:= s.ReadString('main','pop3password','');
pop3port:= s.ReadInteger('main','pop3port',110);
testing:= (s.ReadInteger('main','autostart',1)=1);
interval:= s.ReadInteger('main','interval',1);

Antes:

POP.Host:= pop3host;
POP.Username:= pop3user;
POP.Password:= pop3password;
POP.Connect;

Después:

POP.Host:= pop3host;
POP.Username:= pop3user;
POP.Password:= pop3password;
POP.Port:= pop3port;
POP.Connect;

Evidentemente hay que volver a compilarlo; se necesita Borland Delphi, desconozco la versión mínima requerida (¿5, 6, 7...?).

Esto habilitaría una nueva entrada en el fichero Fjern_MS_Virus.ini que describiría el puerto de acceso al servidor POP3. Ejemplo imaginario de Fjern_MS_Virus.ini:

[main]
pop3host=pop.grijandemore.org
pop3user=cobarde
pop3password=ereuntorpedo
pop3port33
autostart=0
interval=1

Si la línea pop3port= no está presente, se asume el puerto 110 por defecto.

(No sé qué pensaría el autor si se distribuyese una versión modificada, un poco más completa, de su programa sin haberle consultado.)
Un saludo...

Ramón Sola @ Málaga.España

Lávate los dientes si quieres escribirme. ;-)))
Que no funda el pánico. (cunda)


"ThomasD (dk)" escribió en el mensaje
news:
Un usuario danés, Uffe Kousgaard, ha elaborado un pequeño programa que
elimina los correos con virus en el servidor cada x minutos. Ademas se
crea un listado de los remitentes, asunto y otros datos que se abre en
Excell. El programa de 265KB se puede bajar aquí
www.routeware.dk/download/virus_mail_fjerner.zip
Despues de la descarga y unzip se abre el archivo .ini y se ponen los
datos del servidor pop3, nombre de usuario y contraseña. La línea mas
abajo Interval=1 significa eleminacíon cada minuto, se puede cambiar el
número a 2 cada dos minutos etc. Guardar.
Despues se abre el programa en el icono y se pincha en Start. El
programa elimina los correos virus en el servidor cada x minutos. Si en
vez de Start se pincha en Fjern nu, solamente se eliminan los que ya
están en el servidor.
Se tiene un icono al lado del reloj que abre/cierra el programa con un
click. Slettet=borrado, por minuto, por hora, Ikke slettet=no borrado.
Tengo el programa instalado y funciona perfectamente.
Si queréis id a probarlo.
thomas
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida