《逆向工程核心要点》读书笔记

1. 逆向工程与代码逆向工程

逆向工程(Reverse Engineering,简称RE),一般指,通过分析物体、机械设备或系统,了解其结构、功能和行为等,掌握其中原理并改善不足之处、添加新创意的一系列过程

代码逆向工程(Reverse Code Engineering,简称RCE)是逆向工程在软件领域中的应用

逆向工程包含多种,对软件进行逆向工程只是其中的一种。

2. 代码逆向分析法

分析可执行文件时使用的方法大致分为两种:静态分析与动态分析

2.1 静态分析

不执行代码对代码进行分析。只通过观察文件的外部特征,如文件类型、大小、PE头信息、Import/Export API、内部字符串等等。使用反编译工具(Disassembler)查看内部代码、分析代码结构也是静态分析。

2.2 动态分析

在文件的执行过程中进行分析。通过调试分析代码流,获得内存状态等。此外,观察注册表、网络等的同时也可用于分析软件程序的行为。还可使用调试器(Debugger)分析程序的内部结构与动作原理。

在分析过程中,需灵活使用两种分析方法。