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.
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.
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