Auseinandergenommen: LoveLetter Virus

Viren programmieren

Er geht auf der ganzen Welt um: Der 'I-LOVE-YOU' Virus legt Mailserver lahm und übt sich auch sonst in lauter unangenehmen Dingen. Wie aber funktionert das Ding? - Eine Frage die nicht nur für Programmierer interessant ist: Daher haben wir den Virus in seine Teile zerlegt - was er genau tut, steht Schritt für Schritt im Bericht. Von Thomas Wölfer.

LoveLetter - so funktionert er
Im folgenden ist der Quellcode der Virus abgebildet - keine Angst dabei: In der abgebildeten Form ist das Ding völlig harmlos; wir zeigen einfach nur Zeile für Zeile, was der Virus tut, und welche Befehlszeilen wofür verantwortlich sind. Ausgeführt wird das ganze übrigens mit dem Windows Scripting Host - Grundlagenbeitrag hier.

Und los gehts:
Die ersten beiden Zeilen sind einfach nur Kommentare - passieren tut hier gar nichts: Es handelt sich dabei einfach um irgendeinen Text den der Programmierer eingefügt hat - dem ist keine Bedeutung beizumessen.

Mit 'On Error Resume Next' wird zunächst eine Fehlerbehandlung eingeleitet: Tritt während der Abarbeitung des Programmes ein Fehler auf, soll mit dem nächsten Schritt weitergemacht werden. Danach werden ein paar Variable definiert - mit diesen Variable wird später im Programm gearbeitet.

Dann legt das Programm ein sogenanntes 'FileSystemObject' (fso) an - mit diesem Objekt kann auf das Dateisystem (d.h.: auf die Dateien auf der Festplatte) zugegriffen werden. Genau das passiert dann auch in der nächsten Zeile: Das Programm liest sich selbst in den Speicher (Mit OpenTextFile und dem anschliessenden ReadAll()).

Hier geht das Programm dann tatsächlich los: Zunächst wird mit CreateObject() ein 'Shell' Objekt erzeugt - dieses Objekt ermöglicht den Zugriff auf verschiedene Funktione von Windows - zum Beispiel kann man damit die Registry auslesen und in sie schreiben - was dann später auch passiert.

Mit den 'Set' Befehlen erfragt das Programm dann die Verzeichnisse von Windows (dirwin) und von Windows/System (dirsystem), um anschliessend eine Kopie von sich Selbst unter dem Namen MSKernel32.vbs und Win32DLL.vbs bzw. LOVE-LETTER-FOR-YOU.TXT.vbs anzulegen. Mit anderen Worten: Diese Dateien enthalten dann ebenfall einzig und allein das Virus-Programm.

Nachdem sich der Virus auf diese Weise kopiert hat, legt er mit seiner eigentlichen Arbeit los - und ruft die Funktionen regruns(), html(), spreadtoemail() und listadriv() auf: Diese Funktionen sind weiter unten im Programm definiert - was sie tun, ist ebenfalls weiter unten erklärt.

Artikel kommentieren