繁体   English   中英

使用 python 在二进制文件中搜索二进制字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM