- 献词
- 致谢
- 前言
- 第一部分 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 交叉引用
23.7 IdaPdf
基于文档的恶意软件正变得越来越常见。恶意 PDF 文件就是一个典型的例子,这些文档文件旨在利用文档查看软件中的漏洞。分析恶意 PDF 文件(或任何相关的文档文件)需要你了解所分析的文件的结构。通常,通过仔细分析这些文件结构,你可以发现任何在文档被成功打开后将执行的嵌入代码,以攻破查看该文档的计算机。现有的一些 PDF 分析工具主要针对的是命令行用户,其目的是提取最终被加载到 IDA 中的信息,以进行深入分析。
IdaPdf (参见表 23-7 )由一个 IDA 加载器模块和一个 IDA 插件模块组成,这两个模块都设计用于分析 PDF 文件。IdaPdf 的加载器组件将识别 PDF 文件并将其加载到一个新的 IDA 数据库中。加载器负责分割 PDF 文件。在加载过程中,加载器将尽一切努力提取并过滤出所有 PDF 流对象。由于加载器模块会在加载过程完成后退出,这时就需要第二个组件(即 IdaPdf 插件),以提供初始加载以外的 PDF 分析功能。插件模块在确认已加载 PDF 文件后,将继续枚举文件中的所有 PDF 对象,并打开一个新的选项卡式窗口,其中列出每一个 PDF 对象。下面的代码清单列出了 PDF Objects 窗口所包含的信息。
Num Location Type Data Offs Data size Filters Filtered stream Filtered size Ascii 17 000e20fe Stream 000e2107 313 /FlateDecode 000f4080 210 No 35 00000010 Dictionary 00000019 66 Yes 36 000002a3 Dictionary 000002ac 122 Yes 37 0000032e Stream 00000337 470 [/FlateDecode] 000f4170 1367 Yes
表 23-7 Idapdf
名称 | IdaPdf |
作者 | Chris Eagle |
发布 | C++ 源代码 |
价格 | 免费 |
描述 | 用于分析并浏览 PDF 文件的 PDF 加载器和插件 |
信息 | http://www.idabook.com/idapdf/ |
上面的代码清单中显示了对象编号及位置、对象的数据、任何必须应用于流对象的过滤器,以及一个指向提取出的、未过滤数据的指针。使用上下文菜单项可实现轻松导航,以查看对象数据或任何提取的已过滤数据。通过上下文菜单项还可以选择是提取原始对象数据还是已过滤的对象数据。Ascii 列指出,插件已尽最大努力确定对象的原始或已过滤版本中是否仅包含 ASCII 数据。
最后,在启动之后,IdaPdf 会在 Edit ▶Other 下添加两个新的菜单项。你可以使用这些菜单项突出显示数据库中的一个数据块,然后要求插件对这些数据进行 Base64 解码,或 unescape1 这些数据,并将结果复制到 IDA 中的一个新建部分。这些未编码的数据通常就是 PDF 文件中的恶意负载。由于插件会将这些数据提取到新的 IDA 段中,因此你可以轻易地导航到这些数据,并要求 IDA 反汇编部分或全部数据。
1. 实现 JavaScript unescape 函数的插件。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论