反编译和反汇编有什么区别

反编译和反汇编有什么区别

反汇编:将可执行的文件中的二进制经过分析转变为汇编程序。

反编译:将可执行的程序经过分析转变为高级语言的源代码格式,一般完全的转换不太可能,编译器的优化等因素在里面。

    反汇编(将C代码翻译成汇编代码)有现成的工具可用(e.g. gdb, objdump), 所以很容易。反编译(将汇编代码翻译成C代码),国外有收费的软件可以用(e.g. Hex-Rays Decompiler),但是也不能保证100%的正确性。所以,反汇编容易,反编译难,逆向工程很不容易。