我正在用python3编写shellcode漏洞。然而,当我尝试输出一些十六进制字节。例如,使用- python3 -c 'print("x8c")' | xxd
"xxd
"中的值为"c28c
",而不是预期的"8c
"
此问题在python2中不会发生。
您的问题出现是因为Python 3将字符串作为Unicode处理,而print
期望Unicode为您的终端编码一些输出。尝试以下操作来绕过此设置:
python3 -c "import sys; sys.stdout.buffer.write(b'x8c')" | xxd