反编译delphi 第一节 关于反向工程(about reverse engineering) 反编译?反向?解密?(decompilation? reverse? cracking?) 简单的说,反编译是编译过程的反转:把一个可执行文件翻译为更高级语言。假如你丢失了你的delphi工程的源程序而只有可执行文件:如果源程序已不可得则反向工程(反编译)是有用的。 耶,“源程序不可得”,这是否意味着我们可以反编译别的程序员开发的delphi工程呢?嗯,对也不对...... 真正的反编译可能吗?(is true decompilation possible?) 不,当然不行。完全自动的反编译是不可能的—没有一个反编译器可以正确的重生出原始代码。 当delphi工程被编译和连接从而产生一个独立的可执行文件,程序中使用的大部分的名称都被转换为地址。名称的丢失意味着反编译器必须为所有的常量、变量、函数和过程创建唯一的名称。即使在某种程度上反编译是成功的,产生的“源代码”仍缺少了原始含义的变量和函数名。 显而易见,原始编程语言的语法在可执行文件中已不存在。所以,让反编译器对可执行文件的连续的机器语言指令进行翻译并判断出原始语言指令是非常困难的。 为什么要使用并且什么时候使用呢(why and when to use.) 反向工程因为以下几个原因而使用: