第3章 IDA Pro 背景知识

交互式反汇编器专业版(Interactive Disassembler Professional),人们常称为 IDA Pro,或简称为IDA ,是总部位于比利时列日市(Liège)的Hex-Rays1公司销售的一款产品。开发IDA 的编程天才名叫 Ilfak Guilfanov,人们常叫他 Ilfak 。十多年前诞生时,IDA 还是一个基于控制台的 MS-DOS 应用程序,这一点很重要,因为它有助于我们理解 IDA 用户界面的本质。除其他内容外,IDA 的非GUI 版本是针对所有 IDA 支持的平台2发布的,并且继续采用源于最初DOS版本的控制台形式的界面。

1. 多年来,IDA 一直由DataRescue 公司销售。但自 2008年1 月,Ilfak 开始通过他自己的公司Hex-Rays 推广和销售IDA 。
2. 目前支持的平台是Windows、Linnux 和OSX 。

就其本质而言,IDA 是一种递归下降反汇编器。但是,为了提高递归下降过程的效率,IDA的开发者付出了巨大的努力,来为这个过程开发逻辑。为了克服递归下降的一个最大的缺点,IDA应用大量启发式技术来识别那些在递归下降过程中遗漏的代码。除反汇编过程本身外,IDA 在区分数据与代码的同时,还设法确定这些数据的类型。虽然你在 IDA 中看到的是汇编语言形式的代码,但IDA 的主要目标之一在于,呈现尽可能接近源代码的代码。此外,IDA 不仅使用数据类型信息,而且通过派生的变量和函数名称来尽其所能地注释生成的反汇编代码。这些注释将原始十六进制代码的数量减到最少,并显著增加了向用户提供的符号化信息的数量。

目录