输入到binwalk.scan的字符串

问题描述

我正在尝试对十六进制字符串(即Python脚本(Python 3.6.4)中的5d00000001...)的某些LZMA压缩数据运行binwalk。我宁愿直接在数据上运行binwalk.scan(),而不是将数据写入文件,然后在该文件上运行binwalk。但是,我在这样做时遇到了麻烦。

我对binwalk的输入是十六进制字符串5d00000001...。我的代码很简单:

import binwalk
import binascii

data = "5d00000001..."    <-- truncated
data_bin = binascii.unhexlify(data)
try:
    for module in binwalk.scan(data_bin,signature=True,quiet=True,string=True):
        for result in module.results:
            print("%s|%s" % (result.offset,result.description))
except binwalk.ModuleException as e:
    print("Error: ",e)

我的data_binb']\x00\x00\x00\x01...',当我尝试运行脚本时,会出现错误TypeError: 'in <string>' requires string as left operand,not int。如果将压缩数据写入文件并在该文件上运行binwalk,就可以轻松运行它。

我应该如何将输入字符串处理为binwalk?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)