【问题标题】:Given a string in python, how would i split at nth byte, and perform an action with each chunk automatically?给定python中的一个字符串,我将如何在第n个字节处拆分,并自动对每个块执行一个操作?
【发布时间】:2017-09-25 02:54:07
【问题描述】:
buf = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80";

鉴于这个 shellcode 字符串(只是一个例子),我想分成多个 nth 大小的块。

一旦它被拆分,给定未知的第 n 个块,我希望它自动执行诸如

之类的功能
os.system("echo " + chunk[1] + ">>/tmp/final")
os.system("echo " + chunk[2] + ">>/tmp/final")

但是,每次都没有指定每个动作,也不知道它被分成了多少块

【问题讨论】:

  • 您是打算将其编码和解码为字节数组,还是只想将字符串每隔n个字符分割一次?
  • 只想在每第 n 个字符处分割字符串,然后重复多少未知块完成一个动作,例如我的例子。
  • 这是个好方法:stackoverflow.com/a/9475538/15890

标签: python string shellcode chunks


【解决方案1】:

看看下面的代码是否对你有帮助,它在每个第 n 个字符处分割字符串:

nbuf = [buf[i:i+n] for i in range(0, len(buf), n)]
for st in nbuf:
    cmdk = 'os.system("echo "' + st + '">>/tmp/final")'
    subprocess.call(cmdk,shell=True)

【讨论】:

  • 不要遍历索引(无论如何你都缺少range),直接遍历块。
  • 感谢您添加更改的评论
猜你喜欢
  • 2022-01-15
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
  • 1970-01-01
相关资源
最近更新 更多