我试图将字符串发送到服务器上运行的另一个应用程序(我无权访问)。该字符串包含空字符。现在我注意到当我在脚本中运行以下代码时,
print('abc\x00\x91\x11\x01123')
输出为:abc\x00\x91\x11123。
当我在终端中运行相同的代码时想到:
python -c 'print("abc\x00\x91\x11\x01123")'
我得到输出:abc�123
在我的情况下,这是所需的输出。为什么两个输出不同?在脚本中运行打印功能时如何获得第二个输出?
编辑:我弄清楚是什么导致了这种差异。pwntools 导致了这种行为。但我仍然无法真正弄清楚为什么。以下代码:
#!/usr/env/python
import pwn
print('abc\x00\x91\x11\x01123')
结果是
abc\x00\x91\x11123
当我不导入pwn时,结果如预期:abc�123。