python - 使用Python在PE文件中搜索字符串

标签 python python-3.x

我正在使用 Python 3.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 的十六进制,它包含 1024 41 和 1024 00,所以它都在那里。

更新: 将 if 语句更改为:

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

看起来它找到了第一个 A。 感谢@Kevin

最佳答案

PE 文件中的字节序列以 A\x00 开头,但您正在搜索 \x00A,因此第一个 A 不匹配。将测试字符串更改为 b'A\x00'*1024

关于python - 使用Python在PE文件中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53482746/

相关文章:

python - Django crontab 不在后台运行

python - Python 3 中的 Concurrent.futures 与多处理

python - 如何在不卸载的情况下解决导入cv2上的ImportError

python - 从Python到MySQL上传数据失败

c++ - 使用 python3-config 进行 Pybind11 编译不起作用

python - 使用Python运行外部程序

python - 如何通过超链接或Web界面从中运行.py文件?

python - 将 Vim 指向更新的 Python 版本而不是重新编译

Python,matplotlib : how to set tick label values to their logarithmic values

python - 如何使用 Boto3 按上次修改日期过滤 s3 对象