Das Buch und der Orient Express Marc Ruef | 10.03.2006 Meine ersten Gehversuche in der Assembler-Programmierung habe ich im jugendlichen Alter von etwa 14 Jahren gemacht. An meinem 286er mit einer Hand voll MHz, der auf einem bescheidenen MS DOS 3.1 lief, hackte ich die eine oder andere Zeile in den Editor. Neben einfachen mathematischen Problemen, die sich sehr effizient damit lösen liessen (ich liebe Simulationen dynamischer Systeme wie jene der Wirtschaft), waren es vor allem die Computerviren, die zunehmends als Studienobjekt herhalten mussten. Komplexe Strukturen und raffinierte Methoden - wie zum Beispiel jene des polymorphen Virus "Whale" - waren in der Tat für mich als Jüngling ein Augenschmaus; auch wenn es für Aussenstehende - vor allem meine Mutter - eher wie unsinniger Buchstabensalat auf der CGA-Bildschirmausgabe aussah. Über die Jahre verlor ich dann in bisschen den Bezug zur Programmierung, fand meinen Einstieg erst etwa im Alter von 17 wieder, als ich mich erstmals an ANSI C und Visual Basic heranwagte (Zuvor hatte ich einige Jahre mir einer sehr unpopulären Sprache namens ProBat verbracht). Diese Hochsprachen waren doch einiges leichter zu bedienen und deshalb schöne Resultate schneller erzielbar. Die Daseinsberechtigung von Assembler sah sich aus meiner Sicht zunehmends in Frage gestellt. Als das Thema der Netzwerksicherheit immer mehr an Attraktivität gewann merkte ich aber schnell, dass meine alten Tugenden sich als sehr wertvoll erweisen würden. Vor allem, wenn es um solides Reverse Engineering und Exploiting geht (z.B. Pufferüberlauf-Schwachstellen), sind starke Kenntnisse in archaisch anmutenden Bereichen wie der Assembler-Programmierung Gold wert. Auf einen Rat eines Kollegen hin habe ich mir das Buch Exploiting Software (http://www.amazon.de/exec/obidos/ASIN/0201786958/) von Hoglund und Shaw besorgt. Der englische Titel versteht sich als Weiterführung des von mir sehr geschätzten Hacking Exposed (http://www.amazon.de/exec/obidos/ASIN/0072260815/) von Kurtz, McClure und Scambray. Noch detaillierter und technisch tiefer werden echte Angriffe diskutiert. Als besonders interessant erwiesen sich jene Passagen, in denen mittels Disassembler einzelne Programmteile auseinandergenommen und auf Schwachstellen hin untersucht werden. Weitreichende Kenntnisse in der Assembler-Programmierung unabdingbar! Wie immer war ich fast 15 Minuten zu Früh auf dem Bahnsteig. Auch heute habe ich es mir mal wieder gegönnt, doch einige Minuten früher das Büro zu verlassen, weil ich doch noch unbedingt das Kapitel über die Optimierung plattformunabhängiger Shell-Codes fertiglesen wollte. Absolut in Gedanken versunken stand ich unter der Vielzahl an Mitreisenden, die ebenfalls auf den von Zürich her kommenden Schnellzug warten würden. Ich erfreute mich gerade über die wunderbaren Ideen, die da im Buch so schön zusammengetragen wurden. In meinem Kopf setzte ich gerade ein kleines Assembler-Programm zusammen, das sich plattform-unabhängig und polymorph bewegen können sollte. Mnemonische Symbole wie MOV, JMP und PSH reihten sich aneinander und ich würde behaupten, dass sich die Muskeln meiner Wangen durchaus zu einem wenigstens subtilen Lächeln hochgezogen haben. Meine Nase aus dem über 450 Seiten umfassenden Buch hievend starrte ich auf die Gleise vor mir, um dann zu bemerken, dass sich soeben mein Zug wieder in Bewegung gesetzt hatte. Die 15 Minuten waren somit um, der erwartete Schnellzug längst eingefahren und nun auf dem Weg Richtung Baden. Toll, ich würde nun auf die nächste Bahn warten müssen. Zum Glück hatte ich an dem Abend nichts vor und somit genoss ich es noch ein bisschen, mir über die XOR-Funktion und den erweiterten Befehlssatz von 64-bit Prozessoren Gedanken zu machen. Ich möchte anmerken, dass mir das (Verpassen eines Zuges aufgrund eines Buches) insgesamt 6 Mal in meinem Leben passiert ist. Davon war dies das zweite Mal, bei dem ein naturwissenschaftliches Buch im Spiel war. Ansonsten handelte es sich meist um Romane (Sherlock Holmes) oder philosophische Schriften (Friedrich Nietzsche). Im Grunde ist es ein grosses Kompliment an den Schriftsteller, dass er es geschafft hat, mich von meinem Primärziel der Zugsbesteigung abzuhalten. Aber vielleicht ist es auch nur meine eigene Beschränktheit, dass ich mich wirklich nur auf eine Sache - in diesen Fällen halt das Buch - fokussieren kann.