1

我想知道如何在 python3 中将字符串格式化为原始字节,就像在 python2 中一样。

为了澄清我的问题,我必须遵循 shellcode:

x = b"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x62\x61\x73\x68\x68\x62\x69\x6e\x2f\x68\x2f\x2f\x2f\x2f\x89\xe3\x89\xc1\x89\xc2\xb0\x0b\xcd\x80"

我想将此代码传递给python中的radare2。

r.cmd("doo %s"%x)

现在有没有办法让python将我的代码作为“真实”字节而不是Unicode传递?我知道可以用

 sys.stdout.buffer.write(x)

但我想将它传递给程序。现在我得到 c290 而不仅仅是 90。为什么 python2 和 python3 中的 print 输出与相同的字符串不同?已经解释了这种行为,但它没有为我的问题提供解决方案

谢谢

4

0 回答 0