3

例如:

说我已经链接myprogram.objmyprogram.libmyprogam.exe

如果myprogram.lib其中包含各种特殊功能,并且我不小心删除了它(和源),有没有办法可以挖掘myprogram.exe并取出这些功能?或者甚至只是以某种方式转换myprogram.exe.lib文件并且只引用我需要的部分?

4

3 回答 3

0

功能在那里。如果 exe 未加密或无法反汇编为直接汇编代码(exepackers、加密、加密狗),您可以找到这些函数。

但是它们的命名、确切的边界和其他注释都消失了,这使得自动化很难做到这一点,因为不再有任何东西可以识别这些功能。

换句话说,这适用于汇编程序向导或专业逆向工程服务。

如果您的代码非常有价值,并且您的编译器相对常见,那么有逆向工程服务可能会为您完成。但要为高昂的价格做好准备。即使只是分析它的容易程度也可能很昂贵。(*)

在大多数情况下,提取的代价(无论是你自己的时间,还是雇佣的)都大于函数的价值,重写它们更便宜

(*) RTTI 或内部调试信息可能会更容易。

于 2011-09-03T11:34:42.810 回答
0

大多数编译器通过删除未使用的函数来优化代码。除非您使用了库的每一部分,或者您注意设置编译器以使其不会优化未使用的函数,否则您的 lib 文件完全包含在可执行文件中的可能性不大。

于 2011-08-31T05:23:48.423 回答
0

事情就是这样。您可能可以“反编译”您的可执行文件。这是一种痛苦。但是,如果您想要有关此问题的所有信息,请查看较早的 SO 问题。

于 2011-08-31T04:53:47.817 回答