1

我正在编写一个 python 脚本来为编程类生成 shell 代码。该程序将采用未格式化的 shell 代码“aabbccdd”,将其分解为 2 个字符列表项,并将 \x 插入每个字节。问题是它在一个小端处理器上,所以我需要在 4 个项目块中反转列表项目。我在想最简单的方法是将列表加入一个字符串并使用带有“\ x”作为参数的string.split,但我不知道如何一次只做4个/然后在单独的列表中,这样我就可以在每个列表上使用 list.reverse ,将它们连接在一起,然后返回一个字符串进行打印。我的方法似乎很笨拙,我不知道如何让它发挥作用,希望你们中的一个聪明人提供帮助!

编辑 - 我想通了。我以为我的 shellcode 编码不正确,但实际上我有两个问题 - NX Byte 已打开,我正在用我的 shellcode 的最后一部分填充 SFP,而不是使用垃圾字节来填充它。这使得我的 shellcode 在它完全执行之前就终止了,因为 SFP 是不可执行的。感谢您的回答!

4

1 回答 1

2

这已经是内置的(Python 2):

>>> s = "aabbccdd"
>>> s.decode("hex")
'\xaa\xbb\xcc\xdd'

我还不明白您所说的“将列表项反转为 4 个项目块”是什么意思。

于 2013-11-01T10:03:00.183 回答