Magic Disk 64

home to index to text: MD8807-HACK-MECK-VIRUSPROGRAMMIERKURS_TEIL_1-5.1.txt
               Hack-Meck                

Lange wurde er angekündigt - jetzt ist er endlich da: der Virusprogrammierkurs!
In den folgenden Ausgaben möchten wir Sie in der Rubrik Hack-Meck im Rahmen dieses Kurses in die Funktionsweise eines Virus einführen. Am Ende werden Sie in der Lage sein, sich einen eigenen Virus programmieren und die Anatomie eines jeden Exemplars untersuchen zu können, um so zum Beispiel einen Viruskiller zu einem beliebigen Virus schreiben zu können.
Doch nun gebe ich das Wort an unseren " Virenspezialisten" :

Ich möchte an dieser Stelle darauf hinweisen, daß dies ein überaus brisantes Thema ist, mit dem man nicht spaßen sollte, denn ein Virus ist ein eigenständiges Programm und bösartige Viren können verheerende Folgen haben, die nicht zuletzt auch den Programmierer selber treffen können!
Ich selbst bin bei der Programmierung auf meinen eigenen Virus hereingefallen, als er sich plötzlich vor meinen Assembler gehängt hatte, weil ich vergaß, daß er noch aktiviert war. Dieser Kurs ist nur zur Verständlichmachung eines Virus gedacht, nicht aber um Schaden anzurichten! Achten Sie also darauf, Ihren Virus

so zu programmieren, daß er den Benutzer vor eventuellem Datenverlust warnt. Unser Magic Disk Virus arbeitet nach demselben Prinzip. Sie haben sich mit Sicherheit auch schon einmal über den Verlust eines wichtigen Quellcodefiles geärgert, und: was Du nicht willst, daß man Dir tu, das füg' auch keinem andern zu . . .
Da Sie sich ja nun hoffentlich der Gefahr eines Virus bewußt sind, möchte ich nun endlich zur Ausführung schreiten.

Ich werde versuchen, den Kurs möglichst leichtverständlich zu halten, doch ist es unerläßlich, wenigstens den Assemblerbefehlssatz des C64 zu kennen. Denn ein Virus kann nur in Assembler geschrieben werden, da er ein Programm ist, das nahe am System arbeitet und somit nur Hand in Hand mit dem Betriebssystem des C64( bestehend aus reinem Assemblercode) wirklich effektiv wirksam ist.
Beginnen wir also Schritt für Schritt mit der Planung unseres Virus, den Sie am Ende in seiner endgültigen Version testen dürfen. In der nächsten Ausgabe wird er der Magic Disk 64 beigefügt sein.

Definieren wir zunächst erst einmal den Begriff " Virus" :
Wie mittlerweile ( nach dem BHP-Virus) überall bekannt sein dürfte, ist ein Virus ein kleines aber effektvolles Programm, das sich auf Diskette vermehrt, und zwar ganz still und leise, ohne daß der Benutzer direkt etwas davon spürt.
Das heißt im Klartext: wird ein System von einem Virus befallen, so versucht dieser ( so lange wie er aktiv ist) sich zu vermehren. Bei jeder sich bietenden Gelegenheit versucht er, sich auf einen Datenträger, sprich eine Diskette, zu kopieren. Somit ist die Chance größer,

daß ein " geheiltes" System wieder infiziert wird; nämlich einfach dadurch, daß ein infiziertes Programm gestartet wird.
Obendrein haben manche Viren auch noch zusätzliche Funktionen, die den Benutzer hin und wieder auf ihre Anwesenheit aufmerksam machen. Zum Beispiel kann es vorkommen, daß plötzlich ein kleiner Käfer über den Bildschirm krabbelt, daß der Cursor verrückt spielt oder Ähnliches.
Meistens sind Viren sogar so hartnäckig, daß man sie nur noch mit einem brutalen Abbruch der Stromzufuhr, sprich dem Ausschalten des Computers, stoppen kann.

Diese typischen Merkmale eines Virus wollen wir hier nochmal in einer Tabelle zur besseren Übersicht zusammentragen, denn diese Funktionen soll unser kleiner Freund später ja auch besitzen:
1)" Fortpflanzung" auf andere Disketten, um die Art zu erhalten.

2) Speicherresistenz, d.h. Schutz vor   
   RESET und RUN/STOP-RESTORE           

3) Kleiner Hinweis auf die eigene Existenz.

Beginnen wollen wir mit dem ersten und zugleich auch schwierigsten Punkt: die Artenerhaltung. Da dieses Thema allerdings sehr ausgedehnt ist, muß ich Sie leider hiermit auf die nächste Ausgabe der Magic Disk vertrösten, in der wir dann endlich zur Praxis übergehen und mit der Programmierung beginnen möchten.

Valid HTML 4.0 Transitional Valid CSS!