用Python搜索PE文件中的字符串

2024-05-15 11:34:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python3.7覆盖PE文件的资源部分中的一些数据。资源节字符串表有一个1024 a的字符串。当我在十六进制编辑器中打开它时,我看到所有的a。。你知道吗

00 00 28 08 41 00 41 00 41 00 41 00 41 00 41 00 41 00 41 00 41 00 41 00

我用这个在文件里找到A。你知道吗

if b'\x00A'*1024 in file:
    s=file.replace(b'\x00A'*1024, message)

然而,这最终失败了。如果我将1024改为1023,它可以工作,但最后在字符串表的开头留下一个“a”。所以如果我想用B来覆盖所有的A,结果会是。。你知道吗

ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB...

我确信这是因为我只搜索1023,它正在留下一个a。但我只是不知道为什么它找不到它。我复制了A的十六进制,它包含102441和102400,所以都在那里。你知道吗

更新: 将if语句更改为:

if b'A' + b'\x00A'*2087 in file:

它似乎找到了第一个A。 归功于@Kevin


Tags: 文件数据字符串inmessageif语句资源