Einzelnen Beitrag anzeigen

ShadowCaster

Registriert seit: 19. Mai 2003
71 Beiträge
 
Delphi 5 Enterprise
 
#8
  Alt 28. Mai 2003, 10:33
Achne, als ob ich nicht wüsste, dass mir der PE-Header nichts nützt. Ich hab doch gesagt, dass der Entrypoint darin auf den Virus zeigt.

Der Virus besteht aus einem Dll-Loader und einer Entschlüsselungsroutine. Erst wird die Dll aus dem infizierten Code entschlüsselt, dann in den RAM geladen und danach springt der Virus an den alten Code zurück. Ich hab drei infizierete Exe-Dateien disassembliert und genau diesen Loadercode extrahiert. Er ist sehr polymorphic, was heißt, dass der Programmierer des Viruses eine intelligente Asmroutine eingebaut hat, die mit dem Code rumspielt und ihn so in jeder infizierten exe unterschiedlich aussehen lässt, jedoch macht er aber das gleiche.

in einem infizierten Teil des Loaders steht z.B.

add eax, 4

in einer anderen infizierten Exe steht

add edx, 2
add edx, 2

Das ist nur ein kleines Beispiel wie er es fast unmöglich macht ohne integrierten Disassembler im Virusentferner den ursprünglichen Eintiegspunkt zu finden.

Eine Möglichkeit ist es, die Exe zu disassemblieren und den Block rauszusuchen, auf den kein Jump stattfindet. Vielleicht findet man 2-3 dieser Blöcke und kann dann testen auf welchem Block die Exe gestartet wird. Allerdings ist das für den Kernel nicht empfehlenswert, wenn irgendwelcher zufälliger Code ausgeführt wird

Was also tun?
  Mit Zitat antworten Zitat