在 Windows 中替换 exe 文件内容然后运行它的最佳方法是什么?[已结束]

What is the best way to replace a piece of the exe's file content in Windows and then run it? [closed]

提问人:Piodo 提问时间:4/2/2023 更新时间:4/2/2023 访问量:447

问:


想改进这个问题吗?更新问题,以便可以通过编辑这篇文章来用事实和引文来回答。

8个月前关闭。

我想创建一些exe文件的副本,编辑其代码段(注意:不仅仅是一行),保存并运行它

假设我有一个可执行文件程序 .exe,其中包含以下内容:

a
bb
ccc
dddd
eeeee

我想创建该文件的副本,替换一段内容并运行。

请注意,我想替换一段内容,而不仅仅是一行。

例如,我想替换这部分:

bb
ccc
dddd

跟:

xxx
yyy

所以最后最终的内容应该是这样的:

a
xxx
yyy
eeeee

在 Unix 系统上,我将使用 sh 脚本。Windows 的最佳选择是什么?

Windows Bash 文件

评论

0赞 Fravadona 4/2/2023
我对这个部分感到困惑。替换二进制可执行文件中的字符串并不容易。.exe
0赞 Piodo 4/2/2023
请像对待其他所有可读文件一样对待它。我有一个 exe 文件,其中包含我每次都想修改的部分人类可读文本。
0赞 Fravadona 4/2/2023
手动编辑时有效吗?
0赞 Piodo 4/2/2023
是的。我每天都这样做。由于某种原因,文件是独立于我更新的,然后更新后,我必须在记事本中手动打开文件,找到行并更改内容。我想自动化它。
0赞 Verpous 4/2/2023
你真的在 Unix 中使用 sh 脚本完成了这个吗?因为我真的认为没有专门的工具就不合适。如果您确实知道如何操作,请下载一个端口,例如 MinGW、Cygwin 或类似端口,并使用您已经知道的工具。一般来说,编辑 exe 与编辑文本文件不同,因为您可能需要修复文件中的地址和元数据以适应您的更改,最好熟悉文档。

答:

1赞 Philippe 4/2/2023 #1

试试这个:

#!/usr/bin/env bash

perl -p0e 's/bb[\n\r]+ccc[\n\r]+dddd/xxx
yyy/' program.exe

我已经测试了您帖子中的测试数据。如果您的数据包含特殊字符,则需要进行适当的转义。我也用它来在 Windows 和 Linux 上运行。[\n\r]+