String mit Escape-Sequenz an Programmaufruf übergeben
-
Hallo c-community,
ich habe ein Folgeproblem zu meinem Bufferoverflow-Thread für einen Vortrag http://www.c-plusplus.net/forum/310382.
Ich habe jetzt erkannt, dass meine Escape-Sequenz für das EIP-Register durch ein einfaches ./programm AAAAAAA...\xab\xcd\xef\xgh verloren gehen. Im ddd (grafischer gdb) kann ich dies mit perl -e 'print "A" x 20 ."\xab\xcd\xef\xgh"' kompensieren. Ich möchte aber gern zur Vorführung einfach ein Script starten bzw ein String mit angeben, welcher den Programmablauf entsprechend ändert.
Kurze Zusammenfassung meines 1. Threads:
main-funktion wird argv[1] an eine Funktion gegeben. diese kopiert argv[1] in einen begrenzten Buffer und ermöglicht somit den Bufferoverflow. Mit dem Bufferoverflow soll eine 2. Funktion aufgerufen werden, die eigentlich nicht genutzt wird.
Problem ist ebend die Escape-Sequenz für die Adresse der 2. Funktion, welche nur in ddd mit perl funktioniert.
Ich wäre dankbar für einen Denkanstoß für Perl- bzw Shellscript, um das Programm mit einer Stringvariable aufzurufen oder wie ich den String so eingeben kann ohne, dass die Escape-Sequenz verloren geht.
Danke
mirrowwinger
Ps.: Wäre immer noch dankbar für Vorschläge!
Habe das Problem aber direkt mit c erschlagen.