-
-
[IDA使用技巧]#174: IDA 数据库(IDB)详情
-
发表于: 2024-2-12 08:11 2922
-
翻译:梦幻的彼岸
原文地址:https://hex-rays.com/blog/igors-tip-of-the-week-174-ida-database-idbdetails/
当您在 IDA 中工作时,它会将您的分析结果保存在 IDA 数据库中,这样您就可以暂停并在以后继续工作。您可以通过数据库文件的扩展名 .idb (用于传统的 32 位 IDA)或 .i64 (用于 64 位 IDA 或 IDA64)来识别数据库文件。因此,它们通常也只被称为 IDB。但它们包含什么内容呢?
您可以通过查看 IDB 在 IDA 中打开时的工作目录来获得提示:
因此,IDB 是一个包含多个子文件的容器:
- filename.id0 是实际数据库(使用 B 树实现),其中包含从输入文件中提取和/或由用户添加的所有元数据(名称、注释、函数边界等);
- filename.id1 存放虚拟数组,其中包含从输入文件加载的所有数据副本,以及 IDA 所需的内部标志。因此,它的大小通常是原始文件的 4-5 倍,但如果从数据库中添加或删除数据,它可能会增大或缩小;
- filename.id2(如果存在)存储在某些情况下使用的稀疏内存区域(如大部分为零的区段)的数据;
- filename.nam 是数据库中使用的名称的特殊缓存;
filename.til
是指包含数据库本地类型的类型库。
关闭数据库时,IDA 会让您选择如何处理这些文件:
- Don’t pack database 不打包数据库会将各个子文件原封不动地保留在磁盘上。这是最快的选择,但也可能很危险,因为没有完整性检查,任何损坏都可能在很久之后才被发现;
- Pack database (Store) 打包数据库(存储)只是将子文件合并到 .idb 或 .i64 容器中,并添加校验和,以便检测文件损坏。由于不使用压缩,IDB 的大小大致等于子文件的总大小;
- Pack database (Deflate) 打包数据库(Deflate压缩算法)使用 zlib 压缩技术压缩子文件,与存储选项相比,可显著减少磁盘空间,但代价是需要花费更多时间保存和解压缩 IDB。
赞赏
他的文章
- [原创]物联网安全:基础篇 4099
- 威胁情报小课堂:阻止活跃勒索软件的感染 2165
- [翻译]发现利用 Facebook 和 MS 管理控制台实施的 Kimsuky APT 攻击 7041
- 威胁情报小课堂:LockBit Black 2041
- 威胁情报小课堂:Nitrogen 2067
看原图
赞赏
雪币:
留言: