大部分程序员都使用像C/C++或Java这样的高级编程语言来编写代码,因为这些语言更适合人类阅读。然而,计算机被设计成运行机器码,而机器码是用二进制表示的指令。
编译是将编程语言转化为机器码的过程。这意味着反编译就是将机器码重新转换回原始编程语言、恢复原始源代码的过程。在可以获取源代码的情况下,反编译是最简单的逆向工程方法,因为源代码是供人类阅读的。本书将主要关注无法进行反编译的常见情况。但对大家而言,重要的是要记住,如果可以反编译回源代码,那么可以考虑使用这个方法。