[英]search for a binary string in binary file with python
大家好,我正在使用 python 在二进制文件中搜索二进制字符串
我的二进制文件如下所示。
我想在下面找到粗体字。
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 00 37 28 23 00 3C 2D 58 F3 91 E2 00 1 08 01 00 00 7 C1 3B 51 8C DA A8 B0 EE 05 F8 F5 41 17 BA B1 DD 22 88 06 5E BE D4 D3 F3 EF 96 19 3A 26 D1 B3 25 50 7B 38 DD DA 96 0A 9F D0 9B A4 30 68 F5 2E 63 58 1 78 C7 F3 8A 59 FD 35 08 F9 13 5B 63 63 14 C8 12 6D 2E F1 B9 DA 7E 97 8F 1B 5E 19 67 DF A6 AA 5F 79 64 C5 04 FD 2E F8 7F 35 7D
这是我的代码,我的代码能够找到“58”、“F3”、“92”等单个字节,但不能作为整个字符串查找/搜索。
with open(binary_file, 'r+b') as f:
s = f.read()
d = bytes(hex_string, 'utf-8')
n = s.find(d)
if n > -1:
print(n)
else:
print("string not found")
你们能帮我找出整个字符串吗? 提前致谢。
bytes(hex_string, 'utf-8')
会将您的十六进制字符串逐个字符转换为字节。 例如:
bytes('BEEF', 'utf-8') == b'BEEF'
所以你最终会在b'BEEF'
中搜索四个字节: [66, 69, 69, 70]
。 您正在寻找fromhex
方法:
>>> bytes.fromhex('BEEF')
b'\xbe\xef'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.