0

我有一个可执行文件(foo.exe),其中包含一个静态链接的库。我更新了这个库。有没有办法用更新的库更新 exe 文件而无需重新编译可执行文件。我无权访问可执行文件的源代码。使用 Visual C++ 2010 编写的可执行文件和 lib 文件。

4

1 回答 1

2

可执行文件不存储有关哪些库被静态编译到其中的信息,也没有链接器所需的符号表。

好吧,理论上,如果你不害怕逆向工程和修补二进制格式的可执行文件,你可以尝试在 .exe 的反汇编程序中找到旧的库代码,并仔细更改 .exe 以便它执行来自新图书馆。但即使库只有几个函数,这也是一件非常困难和脆弱的事情,实际上它与可执行文件的反编译和恢复其源代码具有相同的复杂性。

因此,虽然理论上可以替换静态库(实际上,替换任何你想要的东西),但这看起来是一件非常不合理的事情。

于 2013-06-08T11:14:29.667 回答