- 献词
- 致谢
- 前言
- 第一部分 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 交叉引用
8.6 IDA TIL 文件
IDA 中的所有数据类型和函数原型信息都存储在 TIL 文件中。IDA 拥有存储在<IDADIR>/til 目录中的许多主要编译器和 API 的类型库信息。Types 窗口(View▶ Open subview▶ Type Libraries )列出了当前加载的.til 文件,并可用于加载你想要使用的其他.til 文件。IDA 将根据在分析阶段发现的二进制文件属性,自动加载类型库。正常情况下,多数用户不需要直接处理.til 文件。
8.6.1 加载新的 TIL 文件
有时候,IDA 可能无法检测到用于构建某个二进制文件的特殊编译器,这可能是由于该二进制文件经过某种形式的模糊处理所致。这时,你可能需要在 Types 窗口中按下 INSERT 键,并选择你想要加载的.til 文件。加载一个新的.til 文件后,该文件包含的所有结构体定义都被添加到标准结构体列表中,其类型信息也被应用于二进制文件中的某些函数,这些函数可在新加载的.til 文件中找到匹配的原型。换句话说,一旦 IDA 获知与某个函数有关的新信息,它就会自动应用这些新信息。
8.6.2 共享 TIL 文件
IDA 还利用.til 文件存储你在 Structures 窗口中手动创建的或者通过解析 C 头文件获得的任何自定义结构体定义。这些结构体存储在一个与创建它们的数据库有关的专用.til 文件中。该文件的名称与其相关数据库的名称相同,扩展名为.til。例如,如果数据库名为 some_file.idb ,则相应的类型库文件则为 some_file.til。在正常情况下,你根本不会看到这个文件,除非你碰巧在 IDA 中打开了上述数据库。前面我们提到过,.idb 文件实际上是一个归档文件(类似于.tar 文件),用于保存不使用的数据库组件。打开一个数据库时,其组件文件(.til 文件为其中之一)将被提取出来,成为 IDA 中的运行文件。
有关如何在数据库之间共享.til 文件的讨论,请访问 http://www.hex-rays.com/forum/viewtopic.php?f=6&t=986 1 。有两种共享方法。第一种方法有些不太正规,即将.til 文件由打开的数据库复制到另一个目录中,然后再通过 Types 窗口,在任何其他数据库中打开这个.til 文件。第二种是一种正式的方法,即从一个数据库中提取出自定义类型信息,生成一段 IDC 脚本,用于在任何其他数据库中重建自定义结构体。使用 File▶ Produce File▶ Dump Type. into to IDC File (文件▶生成文件▶转储类型信息到 IDC 文件)命令可生成该脚本。但是,与第一种方法不同的是,这种方法只能转储 Structures 窗口中列出的结构体,但并不转储通过解析 C 头文件得到的结构体(而复制.til 文件却可以转储这类结构体)。
1. 这个链接只有已注册用户才能访问。
Hex-Rays 还提供一个名为 tilib
的独立工具,用于在 IDA 以外创建.til 文件。注册用户可以通过 Hex-Rays IDA 下载页面下载该实用工具的.zip 文件。要安装这个工具,只需要将.zip 文件解压到<IDADIR>目录中即可。 tilib
实用工具可用于列举现有.til 文件的内容,或通过解析 C(而不是 C++ )头文件来创建新的.til 文件。下面的命令将列举 Visual Studio 6 类型库的内容:
C:\Program Files\IdaPro>tilib -l til\pc\vc6win.til
创建新的.til 文件包括命名要解析的头文件及要创建的.til 文件。你可以使用命令行选项来指定其他包含文件目录或之前解析的.til 文件,以解析头文件中包含的任何依赖关系。下面的命令将创建一个包含 ch8_struct
声明的新.til 文件。生成的.til 文件必须移至 <IDADIR>/til 目录才能供 IDA 使用。
C:\Program Files\IdaPro>tilib -c -hch8_struct.h ch8.til
tilib
实用工具包含大量其他功能, tilib
工具随附的 README 文件详细介绍了其中一些功能,通过运行不带参数的 tilib
命令可简单了解其他功能。在版本 6.1 之前, tilib
仅提供 Windows 可执行文件,但是它生成的.til 文件可与所有版本的 IDA 兼容。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论