mawanella

Jessas: ich wußte ja, dass es ein Fehler war, die Linux Kernel-Mailingliste zu abonnieren. Da schickt doch jemand einen dieser ganz doll schlimmen .vbs-Makroviren hin, die Milliarden von Dollar Schaden anrichten können! Zum Glück habe ich keine Milliarden Dollar, daher passierte mir nix, und ich konnte mit den Virus mal im Code ansehen.

Oh mein Gott, das Programm ist kodiert! Um die Funktion ausführen zu können, muß es also dekodiert werden. Freundlicherweise wird die Funktion dafür gleich mitgeliefert, und: die Zeichen sind einfach in der ASCII-Tabelle fünf Plätze nach links verschoben. Also kopierte ich mir den Virustext in eine Datei und hackte ein winziges Perlskript, das den Code zurückkonvertiert.

So what's next? Der Virus kopiert sich in das Systemverzeichnis und sucht dann nach Outlook. Findet er Outlook, verschickt er an jeden Eintrag im Adressbuch eine Mail mit dem Subject 'Mawanella' und sich selbst als Anhang. Findet er Outlook nicht, poppt eine Dialogbox auf (!), mit dem Hinweis, das ganze an alle Leute zu verschicken (!!)

Danach poppt wieder ein Dialogfenster (!!!) auf, mit einem Hinweis auf einen Vorfall in der muslimischen Stadt Mawanella auf Sri Lanka, bei dem 2 Moscheen und 100 Geschäfte angezündet worden seien. Der Autor des Virus verweist darauf, dass er diesen Vorfall hassen würde, und dass er in der Lage wäre, meinen Computer zu zerstören, was er aber nicht täte, da er ein friedensliebender Bürger sei.

Welches Fazit kann man aus dieser Analyse also ziehen? Nun, immerhin man kann ganz deutlich sehen, was für ein Dreck VBS eigentlich ist. Wofür man hier ein Konstrukt von der Form

For I=1 To Len(sCoded)
   CurChar= Mid(sCoded, I, 1)
   If Asc(CurChar) = 15 Then
      strChr= Chr(10)
   Else
      strChr = chr(asc(CurChar)-5)
   End if
      UnCode = UnCode & strChr
   Next
End Function 

braucht, schreibt man in Perl einfach:

foreach $byte (unpack ('C*', <>)) { print chr ($byte - 5); }

und ist fertig. Und das ist nicht einmal eine Sache der Variablenbenennung; und man nimmt noch den Eingabekanal mit und schreibt das Resultat in den Ausgabekanal. Sheesh. In anderen Sprachen geht es auch schneller.

Ach, und ich weiß: das Virus.

You are looking at valid XHTML 1.0 Transitional and valid CSS 2.0.

$Id: mawanella.html,v 1.3 2003/08/30 23:45:41 froschi Exp $