IDA Pro 权威指南学习笔记(二) - IDA 数据库文件
生成数据库文件
把要分析的文件用 IDA 打开后,会生成 3 个数据库文件
扩展名分别为 .id0,id1,nam
.id0 文件是一个二叉树形式的数据库
.id1 文件包含描述每个程序字节的标记
.nam 文件包含与 IDA 的 Names 窗口中显示的给定程序位置有关的索引信息
点击 OK 后,将会生成一个 .til 文件
.til 文件用于存储与一个给定数据库的本地类型定义有关的信息
在关闭当前项目时,生成的数据库文件将被存档,可以将它们压缩成一个扩展名为 idb 的文件
IDA 数据库指的是 IDB 文件
一个未压缩的数据库文件的大小一般是最初输入的二进制文件的 10 倍
如果工作目录中存在这些文件,则往往表示数据库被意外关闭(例如,IDA崩溃),这时数据库可能被损坏
一旦 IDA 为某个可执行文件创建数据库,它就不再需要访问这个可执行文件
关闭 IDA 数据库
如果关闭一个数据库,无论是完全关闭 IDA,还是切换到另一个数据库,IDA 都将显示一个 Save database(保存数据库)对话框
Don’t pack database(不打包数据库),这个选项仅仅刷新对 4 个数据库组件文件所做的更改,在关闭桌面前并不创建 IDB 文件
Pack database(Store)[打包数据库(存储)],选择该选项会将 4 个数据库组件文件存到一个 IDB 文件中,然后这 4 个数据库文件会被删除,Store 选项不使用压缩
Pack database(Deflate)[打包数据库(压缩)],Deflate 选项等同于 Store 选项,其唯一的差别在于数据库组件文件被压缩到 IDB 归档文件中
Collect garbage(收集垃圾),如果勾选该选项,IDA 会在关闭数据库之前,从数据库中删除任何没有用的内存页面
在选择这个选项的同时,选择 Deflate选项可创建尽可能小的 IDB文件
通常,只有在磁盘空间不足时才选择这个选项
DON’T SAVE the datebase(不保存数据库),选择这个选项时,IDA 会删除 4 个数据库组件文件,保留现有的未经修改的 IDB 文件
使用这个选项类似于在使用 IDA 时应用了撤销或还原功能