二进制文件搜索查询的文本为十六进制二进制格式

时间:2018-03-15 13:48:50

标签: python-3.x binaryfiles binascii

我需要在二进制文件中搜索特定的字符串。字符串来自文本文件中的单词列表。我认为将文本文件中的单词翻译成可以搜索的格式会更容易。我需要将字符串转换成的格式是十六进制字节表示法。例如,我需要搜索字符串TRUE,这是我需要的最终产品:

Original Word = TRUE
Hex Translate = b'\x54\x52\x55\x45'

我一直试图这样做,但没有成功。这是我目前的尝试:

 for word in dirtyWords:
        data = word.strip('\n')
        data = word.encode('utf-8')
        data = binascii.hexlify(data)
        print(data)
        data = str(data).replace("b'",'').replace("'",'')
        sx = r"\x" + r"\x".join(data[n : n+2] for n in range(0, len(data), 2))
        print(sx)
        sx = sx.encode('utf-8')
        print(sx)

这给了我以下输出:

b'54525545'
\x54\x52\x55\x45
b'\\x54\\x52\\x55\\x45'

字节编码正在添加一个额外的反斜杠,当我尝试搜索二进制文件时,它当然会失败。有什么想法吗?

0 个答案:

没有答案