Schon im letzten Blogeintrag »Steinzeit-Crypto« habe ich davon berichtet, wie ich alte PET Tapes wiedergefunden und unter VICE zu neuem Leben erwecken konnte. Leider war das Programm, das ich besonders gerne zurück gehabt hätte, nicht unter den Fundstücken. Deshalb blieb mir nur die daten-archäologische Rekonstruktion...
Als Ausgangsmaterial gab es nur meine Erinnerung an das Programm und was es getan hat. An viele technische Details konnte ich mich nicht mehr erinnern - aber sehr wohl an die Umstände, unter denen es entstanden ist:
Die Geschichte hinter dem Programm
Während meines letzten Schuljahres vor dem Abitur entschloss sich mein Mathematik-Lehrer nicht nur, meiner Klasse im neuen Computerlabor das Programmieren von PET 8032 zu zeigen, sondern uns auch durch Vorträge und Diskussionen über den Nutzen und die Gefahren der Datenverarbeitung aufzuklären. Ich bin meinem damaligen Lehrer (Eckhard Lotze) so dankbar, weil er und seine Diskussionen mit mir es waren, die mich endgültig über die Klippe ins Reich des Hackens gestossen hat...
In diesem Jahr musste jeder Schüler einen Vortrag nach eigener Wahl über ein nicht-technisches Thema aus dem Bereich "Computer" halten. Einige nahmen Bücher wie "Die Macht der Computer und die Ohnmacht der Vernunft" von Joseph Weizenbaum (1977), "1984" von George Orwell (1984) oder "SAGA vom grossen computer" von Olof Johannesson1 (1968); andere suchten sich andere Themen.
Ich entschied mich dafür, kein Buch zu besprechen sondern etwas Selbstständiges zu machen. In früheren Diskussionen hatten wir schon über die "Macht der Programmierer" gesprochen, Computersysteme auch so manipulieren zu können - sei es aus Sabotage oder um sich einen Vorteil zu verschaffen -, dass es nicht bemerkt wird. Das liegt unter anderem auch daran, dass Menschen sich oftmals eher selbst misstrauen als den Ergebnissen eines Rechners.
Die Demonstration
Um diesen Punkt praktisch zu verdeutlichen entwickelte ich ein "verborgenes Programm", das sozusagen im Hintergrund lief und die Ausführung von anderen laufenden Programme beeinflussen konnte. Zusammen mit dem Lehrer arrangierte ich für den Tag meines Vortrags eine praktische Demonstration: Vor der Stunde installierte ich auf allen Rechner das "verborgene Programm" und liess die Rechner laufen.
Zu Beginn der Stunde teile mein Lehrer der Klasse mit, dass aus welchem Grund auch immer mein Vortrag heute ausfällt und stattdessen praktische Programmierübungen in BASIC stattfinden. Er stellte eine einfache Aufgabe und die Schüler konnten (in Gruppen) ihr BASIC-Programm an den laufenden Rechnern schreiben.
Einige Gruppen waren nach kurzer Zeit fertig und präsentierten ihre BASIC-Lösung, während andere Gruppen schnell der Verzeifelung nahe waren: Obwohl das einfache Programm (weniger als 10 Zeilen) eigentlich hätte funktionieren müssen, lieferte es ständig falsche Ergebnisse - und bei gleichen Eingabewerten sogar verschiedene falsche Ergebnisse. Der Fehler wurde in allen Gruppen immer zuerst bei sich selbst (und seinen Programmierkünsten) gesucht, was zu hecktischen Code-Änderungen führte. Und manchmal passierte es wie durch ein Wunder, dass eine kleine und unbedeutende Änderung am Code plötzlich dazu führte, dass alles ordentlich lief und korrekte Resultate lieferte. Einige Gruppen hatten aber auch kein solches Glück...
Jetzt war es an der Zeit, die Sache aufzuklären und begann meinen Vortrag mit einer Erklärung. Das "verborgene Programm" machte unbemerkt folgendes: bei jedem PRINT-Befehl (und den muss es ja mindestens einmal in jedem Programm geben, um das Ergebnis auszugeben) wird der Wert der zuletzt benutzten numerischen Variable ein zufälliger Wert zugewiesen. Je nach Konstruktion des Programmes kann eine solche Änderung "ohne Einfluss" sein - oder aber wichtige Werte in der Berechnung verändern und dadurch falsche Ergebnisse liefern.
Da ich damals von "Malware" oder "Trojanischen Pferden" in Programmen und Computern noch nichts gehört habe, hatte das Programm damals wohl auch einen ganz profanen Namen - an den ich mich aber nicht mehr erinnern kann. In der Rekonstruktion hat es den Namen "TROJAN" erhalten.
Am Schluss des Vortrags gab es aber auch noch einen Sicherheitshinweis: Bevor man an einem Rechner arbeitet und er ist bereits eingeschaltet, sollte man ihn aus- und dann wieder einschalten. Das Überleben diese "verborgenen Programme" nämlich nicht.
Downloads
Wen es näher interessiert: Der Quellcode und die Beschreibung zum Programm kann als PDF (English!) heruntergeladen (~100k) werden. Ein 1541 Floppy-Image mit dem Programm und einigen BASIC Testprogrammen aus der Doku steht ebenfalls zum Download (~180k) bereit.