Ich versuche, eine Binärzeichenfolge mit ANSI-C-Anführungszeichen an ein Programm zu senden. Das funktioniert einwandfrei:
echo $'\x23\x51\x66\x39\x01\x5f\x2f' | cat -v
# output: #Qf9^A_/
Wenn die Daten jedoch ein NUL-Zeichen (ASCII-Code 0) enthalten, wird die Zeichenfolge beendet:
echo $'\x23\x00\x66\x39\x01\x5f\x2f' | cat -v
# output: #
Mir ist bewusst, dass Zeichenfolgen in der Sprache C nullterminiert sind, daher gehe ich davon aus, dass für diese Anführungszeichenmethode eine ähnliche Einschränkung gilt.
Gibt es eine Möglichkeit, ASCII 0 an mein Programm zu senden?
Antwort1
Versuchen Sie es mit printf
anstelle von echo
.
$ printf "\x23\x00\x66\x39\x01\x5f\x2f" | od -c
0000000 # \0 f 9 001 _ /