在 python3 中输出十六进制值
Outputting hex values in python3
我正在使用 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
我正在使用 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