In meinem üblichen Gnom-Terminal mache ich eine
netcat -u somewhere 1234
um UDP-Pakete irgendwohin zu senden. Ich muss die folgenden 5 Bytes übertragen, die hexadezimal geschrieben sind: "01 00 af 0f e1". Wie tippe ich nun eine Escape-Sequenz in mein Terminal, die genau diese 5 Bytes an stdin von netcat sendet?
Update: Nur zur Klarstellung. Ich kenne verschiedene Möglichkeiten, die gewünschten Bytes tatsächlich in das Programm einzugeben. Das ist nicht die Frage. Die Frage ist, welche Tastenfolge ich nach dem Start des Programms in mein Terminal eingebe, um ein Hexadezimalzeichen einzugeben, das auf meiner Tastatur nicht anders dargestellt wird. (Wie 0x00, 0x01 oder 0x0f.)
Ich fange an zu denken, dass es einfach nicht möglich ist, aber ich wäre ein bisschen überrascht, wenn das die Schlussfolgerung ist.
Sie müssen Perl im Terminal-Beispiel verwenden:
./Programm
perl -e' print "\x41\x60\x34\x45"'
Diese Hex-Adresse wird an das Programm gesendet. Es wird häufig bei Pufferüberläufen als Hexa-Adresseneingabe verwendet. Die Seite zeigt nicht alles, was ich eingegeben habe. Suchen Sie auf Google nach Pufferüberlauf. Diese Seiten zeigen Ihnen alles. Hier fehlen einfache Anführungszeichen vor Perl eins und Sekunde am Ende einer ganzen Eingabe.
quelle
Hänge \ x an den Anfang des Bytes an. zB "\ x01 \ x00 \ xaf \ x0f \ xe1".
quelle