【问题标题】:Separating a list into 4 item lists in python?在python中将一个列表分成4个项目列表?
【发布时间】:2013-11-01 09:36:07
【问题描述】:

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

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

【问题讨论】:

  • 放一些你已经拥有的代码作为开始。
  • 我不确定你的意图......但试试r'\x'.join(reversed(your_string[::2]))
  • @SaulloCastro:那只会把\x放在中间。
  • 我不想破坏你的练习,所以我不会给你一个具体的答案。我只是给出解决编程问题的一般建议:从你能想到的最简单、最直接的方法开始。使用基本的流控制和数据结构来完成工作。完成后,想想如何简化您的解决方案。
  • 这个例子的结果应该是什么样的?

标签: python list shellcode


【解决方案1】:

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

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

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

【讨论】:

  • 我认真地搜索了几个小时,但找不到。我只需要反转它们以将小端/加载到堆栈上。但是,我刚刚意识到堆栈是 FILO,而不是小端,所以我可以反转整个事情,而不是反转每个单词。
猜你喜欢
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
  • 2012-04-04
  • 1970-01-01
  • 2013-04-15
相关资源
最近更新 更多