Hi Olli, ich weiß dass wie die
AV Programme in der Regel aufgebaut sind. Als Cheatprogrammierer kenn ich zumindest die Hooktechniken und teste so auch mal die ein oder anderen
AV Programme. Ich hab mir aber schon länger nicht mehr KAV usw. getestet, daher kann ich nur aus Erfahrungen sprechen.
Bei Antivir war es z.b. so, dass ich ein mit UPX gepacktes Programm hatte, was nach dem entpacken und wieder packen mit UPX und einem anderen Komprimierungslevel schon die Exe nicht mehr erkannt hat. Da war wohl einfach eine Signatur für die Exe eingebaut, entpackt wurde sie wohl nicht. (Obwohl Antivir dafür ja eine entpackroutine hat). Hat mich nur geweundert warum sie da eine einfache Signatur gemacht haben und nicht auf die entpackte Exe. Naja gut, wird sich wohl mitlerweile geändert haben.
Dann das Beispiel Morphine. Wird ja größtenteils für Viren use bwneutzt und da bin ich mir doch eben sicher, dass zumindest zu meiner Zeit wo ichs mir angeschaut habe, generell alle mit Morphine gepackten Dateien als Virus eingestuft wurden. Ist mir auch relativ verständlich. Immerhin ist es OpenSource und man kann da immer kleine Änderungen machen und die gleiche gepackte Datei sieht auch immer anders aus. Macht mein Crpyter ja genauso, und denke nicht, dass die
AV Programmierer für irgend welche kleinen Crypter jedesmal einen ALgorithmus entwicklen wollen der das Teil entpackt.
Und dann kommen wir noch zu Execryptor (
http://www.strongbit.com/execryptor_inside.asp ) ein kommerzielles Programm zum crypten. Die selbe Exe sieht auch immer anders aus, und entpacken kann man es nicht. Würd mich aml interessieren wie du dagegen vorgehen würdest. Bleibt ja dann auch nur für jeden Virus eine Signatur zu erstellen. Nur der Virenschreiben muss jedesmal die Exe neu durch den Crypter jagen und jedesmal wird sie nicht mehr erkannt.
Ein interessantter (wenn auch meienr Meinung nach unschön gelöster) Ansatz hjat ja asquared. Also
API hooking um dann zu schaun ob man einen Virus hat. Dies könnten die
AV Hersteller eigentlich super für jeglichen gecrypteten Code anwenden. Nur als Beispiel wieder Morphine, wo einige
AV Hersteller ja wohl lange Zeit Probleme hatten den Programmcode zu entcrpyten. Ein Hook auf VirtualProtect (bzw. VirtualProtectNt) und man kann die Adresse vom entschlüsselten Code direkt vom Stack ablesen. Und dann darauf eben eine Signatur anlegen. Weiß nicht inwiefern die
AV Hersteller das Scannen von ausgeführten Dateien überwachen. Damit kann man schon Viren die gecrypted sind erkennen ohne großartig für jede Version des Crypters den Entschlüsselunsgcode anzupassen. die ganzen Morphine Viren können so während der Laufzeit gecheckt werden, und der VirtualProtect Hook funktioniert für alle Morhpine Versionen.
http://uall.cheat-project.com/files/...ine_source.zip