Monatsarchiv: Oktober 2014

Binäre Inzucht

Der Small C Compiler wurde in C entwickelt. Die ersten Versionen wurden mit Hilfe des Tiny C Interpreters (Tiny C Associates) entwickelt (vgl. [1], Seite 42, Absatz 4). 

Schließlich übersetzte der interpretierte Code des Compilers seine eigene Eingabe:

Und endlich kam der Tag, da der Compiler (Anmerkung des Verfassers: Gemeint ist der interpretierte Compiler) unter Unix lief und seinen eigenen Quellcode als Eingabe akzeptierte (vgl. [1], Seite 43, Absatz 2).

Das war nun lediglich die Vorstufe zur Inzucht, das so erzeugte Binary war die erste Variante von Small C. Diese war dann der Ausgangspunkt zur weiteren Entwicklung und Verbesserung:

[..] und erneut musste sich der Compiler selbst übersetzen. Als Ergebnis dieser Inzucht tauchten einige Fehler im erzeugten 8080- Code auf , die mir bisher entgangen waren. Nachdem ich sie korrigiert hatte, kompilierte ich den Compiler erneut, benutzte dann das Ergebnis um den Compiler erneut zu kompilieren und kompilierte schließlich den Compiler erneut (vgl. [1], Seite 43, Absatz 2).

Das jeweilige Kompilat (ein 8080 Source- File) wurde mit dem jeweiligen Vorgänger (der Variante, die Ihn selbst erzeugt hatte) vergleichen. Als das Ergebnis schließlich identisch war, nahm der Autor an, dass der Compiler fehlerfrei arbeitete.

Faszinierend! Mehr Informationen zu Small C finden sich hier im Blog: Dr. Dobb’s Journal, C- Tools

Einen C- Interpreter (nicht der hier im Text genannte) findet man dort: Tiny C Interpreter, github (Letzter Aufruf 29.10.2014). Ich habe das Programm noch nicht getestet, laut der Beschreibung im Readme sollte es sich für UNIX kompilieren lassen.

[1] Chain, Ron (1986): Dr. Dobb’s Journal, Ein Small C- Compiler für 8088 Maschinen, München, Verlag Markt und Technik. Wiedergabe eines Artikels aus: Dr. Dobb’s Journal (DDJ) Nr. 45, Juli 1980.

Advertisements

VCFB, das Vintage Computing Festival Berlin….

Die Videos zu den Vorträgen sind jetzt im Simulationsraum (20.10.2014) verlinkt.

Wer mag, kann sich das auch auf CCC TV  (4.11.2014) anschauen.

IMG_0403.JPG

Viel Spaß beim sehen.


Fehlerfreie Disk Images, da fehlt was!

Das Spiel Tomahawk habe ich mir seinerzeit gekauft. Ich musste es nie kopieren.

Eine Sicherheitskopien habe ich nicht gebraucht und wenn ich das heute Spielen möchte, suche ich das Image im Netz und starte es mit einem Emulator.

IMG_0232.JPG

Allerdings, der sportliche Ehrgeiz hat mich gepackt denn, die Diskette ist kopiergeschützt. Versucht man auf der Original Hardware – einem Atari 800 XL – das Kopieren, dann brechen die die von mir bevorzugten Kopierprogramme [1] ab und melden einen Fehler.

Der Grund dafür eine absichtliche Beschädigung des Datenträgers, damit eben nicht kopiert werden kann. Der Fehler wird beim Start von der Software abgefragt, wenn der da ist, dann ist es das Original, wenn nicht, dann handelt es sich um eine Kopie.

Subtilere Schutzmethoden nutzen weniger offensichtliche Fehlerquellen die nicht dazu führen das beim kopieren der Lesevorgang unterbrochen wird. Das sind Fehler die die Hardware des Laufwerkes erkennt, meldet, es aber dem Gerät das die Daten anfordert (unserem Computer) überlässt den auszuwerten und entsprechend zu reagieren. Der Fehler selbst ist physischer Natur, trivial, eine Beschädigung der magnetischen Beschichtung des Datenträgers, der auf dem Original liegt aber nicht kopiert werden kann. Zum tieferen Verständnis empfehle ich die Lektüre von [2].

Fehler als ( wichtige) Metadaten, die bei der Migration auf eine neue Hardware, zum Zwecke der Konservierung, verloren gehen!

Der Kopierschutz lässt sich zwar nachträglich überlisten, Schließlich muss man nur die Stelle im Programm suchen die für die Prüfung verantwortlich ist und entfernen, aber, damit hat man das Original dann endgültig verfälscht.

Künftig lassen sich solche Schutzmechanismen mit einem Emulator oder mittels Analyse des Images nicht mehr studieren.

To Do:

– Original Bootloader analysieren.

– *.ATR Image erzeugen, verhalten im Emulator studieren.

Quellen:

[1] US Copy 4 und Disk Wizzard II

[2] Morison, George (1983): Software Protection Techniques. N.n.:Alpha Systems. PDF bei Atarimania (verlinkt 18.10.2014).

Das Disk Image mit den Programmen zum Buch kann man sich dort herunterladen: Disk Image, Programme zu [2] (verlinkt 1.11.2014)