哪些工具生成的C代码在您尝试重新编译时不会产生错误? Hex-Rays可以反编译将所有内容转换为单个文件夹中的项目文件并进行编译吗?

评论

关于机器码反编译的限制,请参见以下答案:reverseengineering.stackexchange.com/questions/311/…

关于这个话题,已经有很长的故事了。最好浏览一下:stackoverflow.com/questions/273145/…

#1 楼

反编译的主要目的不是生成没有错误地编译回去的代码,而是恢复二进制文件的逻辑流。 Hex-Ras Decompiler手册带有自己的一组限制,这些限制在Hex-Rays Decompiler手册中有所说明,仅提及以下几点:

Below are the most important limitations of our decompilers (all processors):
     * exception handling is not supported
     * type recovery is not performed
     * global program analysis is not performed


评论


我的问题是:是否有任何反编译器生成的代码可以轻松地重新编译?

–user8005
2013年8月9日15:16

@ user8005:您的问题是,我引用:“ ...在尝试编译时不会产生错误” ...没有类似的工具。

– PSS
2013年8月9日15:18

当源是C#而不是C时,ILSpy可以很好地工作……

–user8005
2013年8月9日15:34



@ user8005:当然...但是,您的问题是关于C ...不是C#。

– PSS
2013年8月9日15:38

实际上,产生干净地编译C代码以简单地内联它无法理解的任何可疑汇编代码将是微不足道的。正如PSS指出的,重新编译不是反编译的重点。

– David Hoelzer
13年8月13日在10:56