- 献词
- 致谢
- 前言
- 第一部分 IDA 简介
- 第 1 章 反汇编简介
- 第 2 章 逆向与反汇编工具
- 第 3 章 IDA Pro 背景知识
- 第二部分 IDA 基本用法
- 第 4 章 IDA 入门
- 第 5 章 IDA 数据显示窗口
- 第 6 章 反汇编导航
- 第 7 章 反汇编操作
- 第 8 章 数据类型与数据结构
- 第 9 章 交叉引用与绘图功能
- 第 10 章 IDA 的多种面孔
- 第三部分 IDA 高级应用
- 第 11 章 定制 IDA
- 第 12 章 使用 FLIRT 签名来识别库
- 第 13 章 扩展 IDA 的知识
- 第 14 章 修补二进制文件及其他 IDA 限制
- 第四部分 扩展 IDA 的功能
- 第 15 章 编写 IDA 脚本
- 第 16 章 IDA 软件开发工具包
- 第 17 章 IDA 插件体系结构
- 第 18 章 二进制文件与 IDA 加载器模块
- 第 19 章 IDA 处理器模块
- 第五部分 实际应用
- 第 20 章 编译器变体
- 第 21 章 模糊代码分析
- 第 22 章 漏洞分析
- 第 23 章 实用 IDA 插件
- 第六部分 IDA 调试器
- 第 24 章 IDA 调试器
- 第 25 章 反汇编器/ 调试器集成
- 第 26 章 其他调试功能
- 附录 A 使用 IDA 免费版本 5.0
- 附录 B IDC/SDK 交叉引用
3.4 安装 IDA
从收到崭新的 IDA 光盘的兴奋中平静下来后,开始安装 IDA 吧。你会看到,光盘中包含两个名为 utilities 和 sdk 的目录,其中分别是各种附加实用工具和 IDA 软件开发套件(这些内容将在后面几章中讨论)。在光盘的根目录下,你将找到一个安装二进制文件。对于 Windows 用户,这个二进制文件是一个传统的 Windows 安装程序可执行文件。对于 Linux 和 OS X 用户,该安装二进制文件是一个由 gzip 压缩的.tar 文件。
3.4.1 Windows 安装
在 Windows 系统上安装 IDA 非常简单。IDA 的 Windows 安装程序需要随光盘提供的密码,如果你已经下载了 IDA ,那么密码会通过电子邮件提供。启动 IDA 的 Windows 安装程序后,你会看到几个对话框,其中只有一个对话框需要你操作。如图 3-1 所示,你可以在这个对话框中指定 IDA 的安装目录,或接受安装程序默认的安装目录。无论你是选择默认的安装目录,还是指定其他安装目录,在本书的剩余部分,我们将以 作为安装目录。在 IDA 目录中,你将发现密钥文件 ida.key 和下列 IDA 可执行文件。
- idag.exe :IDA 的 Windows GUI 版本。从 6.2 版开始,IDA 中不再包含该文件。
- idaq.exe :IDA6.0 或更新版本的 Windows Qt GUI 版本。
- idaw.exe :IDA 的 Windows 文本模式版本。
图 3-1 选择安装目录
随着 IDA 6.0 开始采用 Qt 跨平台 GUI 库,IDA 的原始 Windows 版本(idag.exe )已被废弃,将从版本 6.2 开始停止随 IDA 向用户提供。
3.4.2 OS X 和 Linux 安装
要在 OS X 或 Linux 系统上安装 IDA ,首先必须用 gunzip 和 untar 程序将相应的压缩文件解压到你所选择的位置。在 Linux 系统中,解压命令为:
# tar -xvzf ida61l.tgz
在 OS X 系统中,解压命令为:
# tar -xvzf ida61m.tgz
无论是哪一种情况,你将得到一个名为 ida 的顶层目录,其中包含所需的全部文件。
IDA 针对 OS X 和 Linux 系统的 GUI 版本和控制台版本的名称分别为 idaq 和 idal 。上述控制台版本的外观与 IDA 的 Windows 控制台版本(如图 3-2 所示)的外观非常相似。Linux 用户可能需要验证(使用 ldd
)IDA 所需的各种共享库能否在他们的系统中使用。需要特别指出的是,使用插件 IDAPython 时,需要安装 Python 2.6。在必要时,你可能需要升级 Python 或创建符号链接以满足 IDA 的要求。
图 3-2 IDA Pro 的控制台版本
3.4.3 IDA 与 SELinux
如果你是一名 Linux 用户,并且已启用 SELinux,在尝试加载所需的处理器模块时,你可能会发现 IDA 显示错误消息:“无法将可执行栈作为共享对象启用。”使用 execstack
命令可以在每个模块的基础上解决这个问题,如下所示:
execstack -c /procs/pc.ilx
3.4.4 32 位 IDA 与 64 位 IDA
IDA 高级版本的用户可能会注意到,每个 IDA 可执行文件都包括两个版本,如 idag.exe 与 idag64.exe ,或者 idaq 与 idaq64 。这两个版本之间的区别在于:idax64 能够反汇编 64 位代码,而所有 IDA 可执行文件本身为 32 位代码。因此,在 64 位平台上运行 IDA 的用户需要确保 IDA 所需的任何支持软件可用在 32 位版本中。例如,如果 64 位 Linux 用户希望使用 IDAPython 以提供脚本支持,则必须安装 32 位版本的 Python 。有关结合使用 32 位与 64 位软件的详细信息,请查阅操作系统文档。
3.4.5 IDA 目录的结构
在开始使用 IDA 之前,你不一定需要熟悉 IDA 安装目录的结构。但是,既然现在讨论的主题是安装 IDA ,还是初步了解一下安装目录的基本结构。在本书的后续章节,我们将介绍 IDA 的高级功能,到那时,了解 IDA 安装目录的结构将变得更加重要。下面简要介绍 IDA 安装目录中的各个子目录(对于 Windows 和 Linux 用户,这些子目录位于 下;对于 OS X 用户,这些子目录可能位于/idag.app/Contents/MacOS 下)。
cfg 。cfg 目录包含各种配置文件,包括基本 IDA 配置文件 ida.cfg 、GUI 配置文件 idagui.cfg 以及文本模式用户界面配置文件 idatui.cfg 。我们将在第 11 章介绍 IDA 的一些更加重要的配置功能。
idc 。idc 目录包含 IDA 的内置脚本语言 IDC 所需的核心文件。我们将在第 15 章详细介绍如何使用 IDC 编写脚本。
ids 。ids 目录中包含一些符号文件(IDA 语法中的 IDS 文件),这些文件用于描述可被加载到 IDA 的二进制文件引用的共享库的内容。这些 IDS 文件包含摘要信息,其中列出了由某一个指定库导出的所有项目。这些项目包含描述某个函数所需的参数类型和数量的信息、函数的返回类型(如果有)以及与该函数的调用约定有关的信息。
loaders 。loaders 目录包含在文件加载过程中用于识别和解析 PE 或 ELF 等已知文件格式的 IDA 扩展。我们将在第 18 章详细介绍 IDA 加载器。
plugins 。plugins 目录包含专门为 IDA 提供附加功能(多数情况下由用户定义)的 IDA 模块。我们将在第 17 章重点讨论 IDA 插件。
procs 。procs 目录包含已安装的 IDA 版本所支持的处理器模块。处理器模块为 IDA 提供机器语言—汇编语言转换功能,并负责生成在 IDA 用户界面中显示的汇编语言。我们将在第 19 章详细介绍 IDA 处理器模块。
sig 。sig 目录包含 IDA 在各种模式匹配操作中利用的现有代码的签名。通过模式匹配,IDA 能够将代码序列确定为已知的库代码,从而节省大量的分析时间。这些签名由 IDA 的“快速的库识别和鉴定技术”(FLIRT )生成,这一内容将在第 12 章详细介绍。
til 。til 目录包含一些类型库信息,IDA 通过这些信息记录特定于各种编译器库的数据结构的布局。我们将在第 13 章详细介绍如何定制 IDA 类型库。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论