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