#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
评论
关于机器码反编译的限制,请参见以下答案:reverseengineering.stackexchange.com/questions/311/…关于这个话题,已经有很长的故事了。最好浏览一下:stackoverflow.com/questions/273145/…