Ich arbeite an einer Online-CTF-Herausforderung und ich muss irgendwie rohe Bytes zu diesem kompilierten C-Programm geben. Ich habe folgendes mit Python versucht:Wie rohe Bytes als Parameter für C-Programm geben
./program `python -c 'print "\x00\x00"'`
... aber aus irgendeinem Grund, der nicht mir geben zu sein scheint, was ich erwarte. Gibt es einige Konvertierungen/Formatierungen, die mir nicht bewusst sind? Ich würde erwarten, dass dies rohe Bytes als Argument ergibt.
Was meinst du "geben rohe Bytes"? Willst du sie als Befehlszeilenargumente übergeben? – stackptr
Verwenden Sie stattdessen "" \ x01 \ x01 "'. Ich vermute, dass Sie zusammen mit der C-Bibliothek ein Array von N Bytes, die alle Null sind, mit einer leeren Zeichenfolge verwechseln. (Wenn Sie das tun, was ich denke, tun Sie: ja, das bedeutet, dass Ihr Shellcode keine Null Bytes enthalten kann.) – zwol