Outputting hex values in python3

2019-02-28 07:30发布

问题:

I am writing shellcode exploits with python3. However, when I try and output some hex bytes. e.g. using the line - python3 -c 'print("\x8c")' | xxd

The value in xxd is c28c, rather than the expected 8c

This issue does not occur in python2.

回答1:

Your issue arises because Python 3 handles strings as Unicode, and print expects Unicode to encode some output for your terminal. Try the following to bypass this:

python3 -c "import sys; sys.stdout.buffer.write(b'\x8c')" | xxd