Idee: Umlenkung des Rücksprungs

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

*Wenn die Prozedur readstr, return ausführt, findet ein Sprung zu der Adresse statt, die mit return address markiert ist.
 
*Indem wir also 8 Bytes über das Ende des Buffers name hinausschreiben, können wir das Ziel dieses Sprungs beliebig manipulieren.
 
*Am aller einfachsten wäre es, wenn es in dem fehlerhaften Programm bereits irgendwo Code gebe, zu dem wir springen können, um das Ziel unseres Angriffs zu erreichen. Das ist aber eher selten der Fall.
 
*Die nächste Idee ist, daß wir unseren eigenen Code mitbringen. Dazu füllen wir den Anfang des Buffers mit dem Code, den wir ausführen wollen. Die Rücksprungadresse wird so manipuliert, daß bei einem return zum Anfang des von uns gefüllten Buffers gesprungen wird.
 
*Damit kann (fast beliebiger) Code zur Ausführung gebracht werden.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2002 Andreas Borchert/Christian Ehrhardt, in HTML konvertiert am 18.06.2002