【发布时间】:2012-07-03 09:28:45
【问题描述】:
我正在对特定文件编辑器进行原型设计,但无法解析我的 hex 文件并找到特定模式。这是我的代码(使用Bitstring 库):
from bitstring import BitArray, BitStream, Bit
f = open('d:\BB.bin', "rb")
s = BitArray(f)
f1 = s.find('0x000015354444444343434344444444434343434444444400F700F0')
>>> print(f1)
(15232,)
这部分没问题——但我想知道输出15232 指的是什么? (在我的文件中,实际模式位于770h)。
我的主要问题是寻找这种模式,但只有前 3 个字节 (0x000015) 和最后一个字节 (0xf700f0):我只对中间部分感兴趣。
我尝试了不同的解决方案,但没有运气,有什么想法吗?
f1 = s.find('0x000001''(.*)''F700F0')
f1 = s.find('0x000001''0x.''0xF700F0')
【问题讨论】:
-
谢谢伙计们,你们太快了;)
-
您还应该在对
find的调用中使用bytealigned=True,否则它会在每个位偏移处查找您的模式,这似乎不是您想要的,而且也相当多慢一点。
标签: python parsing hex bitstring