在 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