2013-10-02 44 views
0

一旦编译了任何文件(exe,dll,...),只有操作系统可以理解其内容。 有一些已知的十六进制编辑器允许打开和编辑这些文件,但使用十六进制编辑器修改(或甚至进行)exe文件是一项艰巨的工作。在编译文件后编辑文件

是否有任何应用程序'反编译'编译的文件获得相当好(和特别理解)的结果?我知道反编译器,但了解它们的输出也很困难。

任何建议,将不胜感激

感谢; d

+0

在编译之后立即反编译会有什么意义? –

+0

可能的重复:[是否有C++反编译器?](http://stackoverflow.com/questions/205059/is-there-a-c-decompiler) –

+0

您是否有特定的语言? Windows的exe文件不一样。 – NoChance

回答

1

没有,反编译是最好的选择。 (如果有比现有的更好的东西,那么这不会被称为反编译器吗?)

难以理解反编译器输出的原因是编译代码时会删除大量信息。如果代码是以调试模式编译的,则会保留一些信息。如果程序是通过优化编译的,则反编译可能与原始代码有很大不同。

+0

即使这个模块会改变那么多?我想从exe文件中获取C源代码几乎是不可能的,但是关于asm呢?编译器执行优化来改变原始代码,但asm比'0'和'1'更容易理解。也许反编译而不是反编译将是点 – Antoni

+0

获取拆解机器代码是微不足道的。由于它没有符号常量并且没有注释,所以比手工编译的汇编器更难读。反汇编反编译为汇编代码,所以我认为它是一种反编译器。 –

+1

写得很好的汇编代码往往会使用宏作为函数前导/后继,访问结构体,系统调用和其他通用目的 - 当您反汇编时,您将不会得到任何回复,只是原始汇编源代码(并且没有评论当然!)。 –