Я пытался отправить строку в другое приложение, работающее на сервере (к которому у меня нет доступа). Строка содержит нулевые символы.
Теперь я заметил, что когда я запускаю следующий код в скрипте,
print('abc\x00\x91\x11\x01123')
вывод: abc \ x00 \ x91 \ x11123.
Пытался, когда я запускаю тот же код в терминале:
python -c 'print("abc\x00\x91\x11\x01123")'
Я получаю в качестве вывода: abc 123
Какой желаемый результат в моем случае.
Почему оба выхода отличаются?
Как получить второй вывод при запуске функции печати в скрипте?
EDIT:
Я понял, в чем причина разницы.
pwntools вызвал такое поведение.
Но я до сих пор не могу понять, почему.
Следующий код:
#!/usr/env/python
import pwn
print('abc\x00\x91\x11\x01123')
результат в
а \ x00 \ x91 \ x11123
Когда я не импортирую pwn, результат будет таким, как ожидалось:
абв123.