如何使用Python在二进制文件中找到两个文件偏移之间的特定字节序列?
我想打开一个二进制文件来搜索两个文件偏移0x66,0x66,...,0x66
和start
之间的特定字节序列end
。
我的想法是使用rb
打开文件,然后使用start
将文件位置设置为fseek()
。然后对于文件中的每个位置,我读取16个字节并将它们与上面的序列进行比较(长度为16个字节)。
但是,必须有一种更简单的方法吗?
答案 0 :(得分:2)
你没有说它是一个大文件,所以让我们假设它很容易融入内存。 fseek到起始位置,然后读取end-start字节。你将有一个bytestring,然后你可以使用.index来找到你的序列:
with open("the_file.bin", "rb") as f:
f.fseek(start)
data = f.read(end-start)
where = data.index(b"\x66"*16)