返回介绍

23.7 IdaPdf

发布于 2024-10-11 21:05:50 字数 1997 浏览 0 评论 0 收藏 0

基于文档的恶意软件正变得越来越常见。恶意 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文