问题描述
我正在尝试制作一个生成shellcode的程序,在Python3中,我需要将一个字符串转换为“\x00\x00”格式,例如:“Hello”->“\x68\x65\x6c\ x6c\x6f”。 我无法弄清楚这一点,如果我尝试将“\\x”添加到“68”,则它不起作用。我试图用谷歌搜索我能做的一切,我认为这很简单,但我坚持下去了。
解决方法
嗯……其实"Hello"
和"\x68\x65\x6c\x6c\x6f"
是一样的
如果你想只是打印那个或其他什么,你可以这样做:
>>> print('"' + ''.join(['\\x'+hex(c)[2:] for c in "Hello".encode()]) + '"')
"\x48\x65\x6c\x6c\x6f"
如果你想输出字节(你在评论中问过):
>>> print('b\'' + ''.join(['\\x'+hex(c)[2:] for c in "Hello".encode()]) + '\'')
b'\x48\x65\x6c\x6c\x6f'
如果你想在某处发送像 b"Hello" 这样的字节,只需发送它们。耶。