Programmoutput als Parameter
-
Passt vielleicht nicht 100%ig, aber das Problem bringt mich bei meine Facharbeit über Buffer Overflows mittlerweile zum verzweifeln:
Ein Programm mit einer potenziellen Schwachstelle soll mit der Ausgabe(stdout) eines anderen(Shellcode zum einschleusen in das 1. Programm) als Parameter gestartet werden. In meinem Buch soll das einfach mit ./programm1 ./programm2 geschehen, bzw mit "run ./programm2" im Debugger. Nach endloser Probiererei hab ich dann im gdb herausgefunden, dass nicht nich Ausgabe des zweiten Programms, sondern einfach "./programm2" als String übergeben wird. Wie übergebe ich denn die Ausgabe?
Einfach kopieren und einfügen geht nicht, weil der Shellcode offensichtlich etliche Escape-Zeichen etc. enthält, welche zu Zeilenumbrüchen, Piep-Tönen und sonstigem bei manueller Eingabe führen..
-
Hab ich dich richtig verstanden, dass du innerhalb von gdb, die Ausgabe von Programm A als Argumente an Programm B übergeben willst?
Bei mir geht dass, wie man's aus der bash & co kennt:
$ gdb progB
(gdb) run `progA`Beachte, die backticks. Wenn du die nicht findest, nimm:
(gdb) run $(progA)
-
Oh man, es lag tatsächlich an diesen backticks. Hab die winzigen Dinger im Buch einfach übesehen...
Arbeite sonst nicht mit Linux, kenne deswegen auch nicht bash & co.Funzt jetzt genau so wie es soll, danke.