2013-11-01 73 views
1

我正在研究一个python脚本来为编程类生成shell代码。该程序将采用未格式化的shell代码“aabbccdd”,将其分解为2个字符列表项,并将\ x插入到每个字节。问题在于它在一个小端处理器上,所以我需要在4个项目块中反转列表项。我在想这样做的最简单方法是将列表加入到一个字符串中,并使用带有“\ x”作为参数的string.split,但我无法弄清楚如何一次只做4个/在单独的列表中,所以我可以在每个列表上使用list.reverse,将它们连接在一起,然后返回到打印字符串。我的方法看起来笨重,我无法弄清楚如何让它工作,会喜欢你们聪明人之一的帮助!在python中将列表分隔成4个项目列表?

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

+5

把你已经有的一些代码作为开始。 – Ashalynd

+0

我不确定你的意图......但尝试像'r'\ x'.join(反转(your_string [:: 2]))' –

+2

@SaulloCastro:只会将'\ x'放入之间。 –

回答

2

这已经内置(Python中2):

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

我完全不通过“扭转4个数据块列表中的项目”,但你的意思理解。

+0

我认真搜索了几个小时,找不到那个。我只需要将它们反转为小端/加载到堆栈上。但是,我只是意识到这个堆栈是FILO,不是小端,所以我可以颠倒整个过程,而不是颠倒每个单词。 –

相关问题