Compiler construction 编辑一个文件后';汇编

Compiler construction 编辑一个文件后';汇编,compiler-construction,Compiler Construction,编译任何文件(exe、dll等)后,只有操作系统才能理解其内容。 有一些已知的十六进制编辑器允许打开和编辑这些文件,但使用十六进制编辑器修改(甚至理解)exe(例如)是一项非常困难的工作 是否有任何应用程序可以“反编译”编译后的文件,从而获得相当好的(特别是可以理解的)结果?我知道反编译器,但是理解它们的输出也是一件很困难的工作 如有任何建议,将不胜感激 谢谢,;不,反编译器是你最好的选择。(如果有比现有的更好的东西,那不是也被称为反编译器吗?) 很难理解反编译器的输出的原因是编译代码时删除了大

编译任何文件(exe、dll等)后,只有操作系统才能理解其内容。 有一些已知的十六进制编辑器允许打开和编辑这些文件,但使用十六进制编辑器修改(甚至理解)exe(例如)是一项非常困难的工作

是否有任何应用程序可以“反编译”编译后的文件,从而获得相当好的(特别是可以理解的)结果?我知道反编译器,但是理解它们的输出也是一件很困难的工作

如有任何建议,将不胜感激


谢谢,;不,反编译器是你最好的选择。(如果有比现有的更好的东西,那不是也被称为反编译器吗?)


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

编译后立即反编译有什么意义?可能重复:您是否考虑了特定的语言?Windows对exe文件的处理方式不同。编译后没有反编译的意义。我只是好奇,在谷歌上找不到任何有趣的东西,所以我在这里问。我只是想提高我的知识@Emmad Kareem我问这个问题不是为了一个特定的系统,而是为了一个“通用目的”。我只是好奇是否有人使用过反编译程序,它能产生“很棒”的结果。即使是asm也会有这么大的改变?我想从exe文件中获取C源代码几乎是不可能的,但是asm呢?编译器执行的优化会更改原始代码,但asm比“0”和“1”更容易理解。也许分解而不是反编译才是重点,将机器代码反汇编是微不足道的。它比手工编码的汇编程序更难阅读,因为它没有符号常量和注释。反汇编是对汇编代码的反编译,所以我认为它是一种反编译器。编写良好的汇编代码倾向于使用宏来处理诸如函数前导码/后置码、访问结构、系统调用和其他一般用途的东西——当你反汇编时,你不会得到任何这些,只是原始汇编源代码(当然没有评论!)。