Hace un tiempo un usuario de este foro ideo un programa que buscaba una string en el interior de un programa compilado, para ver si era un virus o no. La idea me pareció muy interesante, asi que me he decidido en ampliar la base de datos del programa para que detecte más archivos malicioso.
Entre otras funciones, es capaz de descubrir que aplicaciones usan la libreria MSWINSCK.OCX (como los troyanos) o la API: DownloadToFileA (como los gusanos o webdownloaders).
Aqui la lista de string:
"gusano"
"worm"
"virus"
"virii"
"troyano"
"troyano"
"troyan"
"trojan"
"Software\Microsoft\Windows\CurrentVersion\Run"
"WScript.Shell"
"Scripting.FileSystemObject"
"HKEY_CLASSES_ROOT\exefile\shell\open\command"
"drivers\etc\hosts"
"GetSpecialFolder"
"infect"
"Winsock"
"MSWINSCK.OCX"
"URLDownloadToFileA"
"keylog"
"nuke"
Se puede burlar facilmente este scanner con una simple encriptacion de strings.
(El codigo fuente lo encontrareis en el interior del zip, más info en: http://foro.elhacker.net/index.php/topic,133982.0.html)
Mad, si kieres te paso un texto que sirve para que los programas antes de ejektuarse pasen por tu skaner primero y leugo decides si se ejektuan o si no... ;) ;)
Salu2
pasame eso a ver
No entiendo lo que hace el programa :-\
Supongamos que programamos un troyano, en que parte del codigo escribiriamos "gusano"?. No le veo el sentido al programa...
Otra cosa, muchos programas no malisiosos usan sockets (estos no se inventaron para hacer troyanos precisamente...) asique estarias detectando programas normales como malisiosos. Lo mismo con la direccion del Registro...
Si estas programando solo con el objetivo de practicar, pues sigue adelante. Sino, no le veo mucho futuro al proyecto :-\
Saludos.-
Cita de: NYlOn en 1 Agosto 2006, 01:11 AM
No entiendo lo que hace el programa :-\
Supongamos que programamos un troyano, en que parte del codigo escribiriamos "gusano"?. No le veo el sentido al programa...
Otra cosa, muchos programas no malisiosos usan sockets (estos no se inventaron para hacer troyanos precisamente...) asique estarias detectando programas normales como malisiosos. Lo mismo con la direccion del Registro...
Si estas programando solo con el objetivo de practicar, pues sigue adelante. Sino, no le veo mucho futuro al proyecto :-\
Saludos.-
Veamos, hay gente que al programar usa como nombre de funciones: SpreadWorm() o DeleteFile(). Este programa buscar string's que SUELEN tener los virus/gusanos/troyanos/etc...
Evidentemente que hay programas que usan el MSWINSOCK sin ser troyanos. Pero si al pasar el scanner vemos k tiene las strings del registro, mas el winsock, mas la palabra troyan y cosas asi... pues yo sospecharía.
No es para nada, ni pretende ser, un Antivirus. Solo es un método para buscar strings dentro de una aplicación ya compilada (siempre y cuando no tenga encriptacion)
pero puede contener esas string sin usarlas, distinto sería si buscase las dependencias del archivo. A parte, no es muy fiable porque si yo tengo una función hecha por mí que descarga un fichero, tu no sabrás que lo descarga porque no está la api "URLDownloadToFileA" pero sí que lo descarga. Sería bueno que buscase las dependencias.
El programa es muy muy mejorable (he escaneado un manual en TXT y me dice que hay cosas sospechosas xD), pero esta claro que es muy muy útil:
Imaginaos que os pasan una animación en Flash y el programita este encuentra "Software\Microsoft\Windows\CurrentVersion\Run"
Un AV probablemente no detectaría nada, y un flash, segurooooo que no es.
Un saludo
muy bueno ;) aunke siempre seguira el viejo truco de cifrar y descifrar el codigo para burlar la heuristica, gracias por dejar el codigo