我一直在寻找一种开源GUI工具,以在Windows系统上以自动方式提取PDF。一段时间以来,我一直很感兴趣地使用了Didier Steven的工具,但是即使观看了一些视频,也无法理解如何使用他的PDF分解/分析工具。他们似乎需要对基础PDF构造有更多的了解,甚至可能还要更多。

对于SWF文件,我正在寻找SWFScan工具:将有问题的文件加载到该工具中。从那里,您可以浏览链接,脚本和图像。它甚至可以自动分析代码,并显示哪些部分可能存在安全问题,以及每个部分的安全隐患,然后提供具有更多信息的网页参考。

有谁知道一个好的开源GUI Windows是否可以加载PDF但不执行,而是提取所有脚本,编译后的代码,文本,链接,图像等?理想情况下,它将显示每个图像之间的关系,例如当您单击某个图像时,它将告诉您运行了哪些脚本,该脚本转到哪个URL,并让您自己查看图像。

PDF非常普遍,仅次于SWF,以至于这种工具似乎已经很普遍了。我可能已经忽略了它。

评论

Didier Stevens工具已被广泛使用,但是您是对的,如果您想了解PDF文件格式,则需要了解它。我有一篇(有些冗长)的博客文章,逐行浏览PDF文件,以解释结构的基本知识,但是没有一个使用任何GUI工具。 Didier还有一个用于010编辑器的模板。 010享有很高的声誉,您可以免费试用30天

@amccormack很棒的评论,标签编辑和出色的写作-我正在阅读。有趣的是,这使我相信,我正在寻找的工具应该存在-即使只是商业用途,如果好的话我会付钱。我曾经认为出色的工具通常是基于文本/命令行的,但是像这样的情况使我意识到一张图片有时价值超过1000个单词。即使比SWF文件复杂得多,仍然有一种结构可以从这种工具中受益。

自2006年以来未进行维护,但仍然是一个有趣的工具:multivalent.sourceforge.net

另外,github.com/qpdf/qpdf可能会有所帮助,它可以在源代码级别将pdf转换为更易于阅读的格式。

我无法再通过他评论中的链接访问@amccormack的博客文章;我在这里找到了它,但URL稍有变化:amccormack.net/2012-01-22-anatomy-of-a-pdf-document.html谢谢!

#1 楼

Sogeti的Origami框架带有基于GTK的GUI。


它是什么?

origami是一个Ruby框架,旨在解析,分析和伪造PDF
文件。这不是PDF渲染库。它旨在提供一个
脚本工具来生成和分析恶意PDF文件。同样,
可用于创建即时定制的PDF或将
(邪恶的)代码注入到现有文档中。

功能


从头开始创建PDF文档。
解析现有文档,
修改它们并重新编译它们。
在对象级别浏览文档,深入文档结构,解压缩PDF对象流,并对名称和字符串进行混淆处理。
高级操作,例如加密/解密,签名,文件
附件...
GTK界面,用于快速浏览文档内容。
br />




这是我在Windows 7系统上安装它的方式:


请确保已为Windows安装Ruby v1.9.3
http://rubyinstaller.org/downloads/


注意:这可能适用于较新/较旧的Ruby版本,但是我已经仅在Windows 7上的v1.9.3上进行了测试。(它在我的Linux系统上与ruby v1.8.7一起使用)

接下来,通过打开ADMIN cmd提示符并运行以下命令来安装折纸:

gem install origami


接下来,您将需要安装ruby-gtk2。在与之前相同的ADMIN cmd提示符下,运行:

gem install gtk2


之后安装pdfwalker,因为它已移至单独的gem:

gem install pdfwalker


最后,只需在cmd提示符下运行pdfwalker

如果这对您不起作用,建议您尝试上述操作从Cygwin开始,您基本上可以按照说明在* nix上进行安装。

如果要在Ubuntu / Debian上进行安装

使用以下命令安装ruby:

apt install ruby-full

然后安装上面列出的折纸:

gem install origami

如果要使用GUI,您可能需要安装libgtk2.0-dev并安装rake gem才能安装gtk2:

apt install libgtk2.0-dev
gem install rake
gem install gtk2


因为pdfwalker还需要libcanberra,现在就安装它是一个好主意:

apt install libcanberra-gtk-module

之后安装pdfwalker,因为它已移至单独的gem:

gem install pdfwalker

它应该如上所述从命令行运行。

评论


这会很好,但是我似乎无法安装/运行GUI'pdfwalker'。查看该网页,我没有看到Windows支持。您能否指出我如何使该应用程序的GUI在Windows上运行?

– Lizz
13年4月4日在6:32

我更新了在Windows上安装步骤的答案。我现在在Windows 7系统上运行它。

–米克
13-4-4在13:17



Ruby 2.2。gtk2-2.2.5更新:您需要大量Cygwin软件包才能完成此工作。除了gcc和make外,库的列表并不明显,涉及运行gem install origami和[superuser.com/questions/923190/…mkmf.log)以查看失败的库。它还需要安装X服务器,然后启动它,导出DISPLAY =:0.0,甚至我得到:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in require':类Date(TypeError)的超类不匹配`

–Simon Shine
2015年8月5日14:43

#2 楼

要大部分提取恶意内容(如脚本和漏洞利用),您可以使用在线工具:

Wepawet-在线工具包,用于分析js \ pdf \ flash文件。

Jsunpack-用于分析文件的在线工具包,其中可能包含打包的\编码的JavaScript代码,例如PDF \ HTML \ JS。还可以与.pcap文件一起使用。

此外-用于Linux的脱机工具(不是GUI,而是很好的工具),用于提取shellcode和隐藏字段:

Pdfextract-脱机可以从PDF提取文本的各个区域的命令行工具和库。

#3 楼

也许PdfStreamDumper足够接近您想要的东西,但是您仍然需要一些PDF知识才能有效地使用它。

评论


请添加有关链接和/或相关事项的简短描述。仅链接的答案不视为答案。

–asheeshr
2013年5月7日14:38

#4 楼

我强烈推荐Cerbero Profiler!


Cerbero Profiler是主要用于恶意软件和取证分析的工具。它支持大量文件格式(下面列出),可以对其进行分析,并允许用户检查其内部布局。 Profiler通常用于识别文件中的0天威胁和个人信息。但是,考虑到项目的规模,它还有许多其他用途,我们鼓励您访问我们的博客以查看Profiler的运行情况。


您可能还需要检查我的开源文件剖析工具。我为此编写了PDF解析器,但尚未提交。抱歉,我知道这没有多大帮助。但我最终还是会推高它。

#5 楼

尽管没有GUI,但我认为值得一提的命令行工具将有助于解决问题的in an automated way部分。我亲自使用了mupdf关联的命令行工具:mutool。例如,处理以下PDF文件,这是提取封装的JPX流的方法:

$ mutool info Bug691816.pdf 
Bug691816.pdf:

PDF-1.5
Info object (49 0 R):
<</ModDate(D:20101122114310-08'00')/CreationDate(D:20101122114251-08'00')/Title(ID1561x.indd)/Creator(Adobe InDesign 1.5.2)/Producer(Adobe PDF Library 4.16)>>
Pages: 1

Retrieving info from pages 1-1...
Mediaboxes (1):
    1   (54 0 R):   [ 0 0 612 792 ]

Images (1):
    1   (54 0 R):   [ JPX ] 300x161 8bpc Idx (58 0 R)


因此,您只需要:

$ mutool show -be -o obj58.jp2 Bug691816.pdf 58


您可以验证:

$ file obj58.jp2
obj58.jp2: JPEG 2000 Part 1 (JP2)


请参阅文档:


用于在PDF文件中显示内部对象的工具。


对于PDF/A-3: EmbeddedFile(如本文件所述)文件),您甚至可以运行:

$ mutool portfolio ZUGFeRD_1p0_BASIC_Einfach.pdf x 0 ZUGFeRD-invoice.xml
$ head ZUGFeRD-invoice.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 

Nutzungsrechte 
ZUGFeRD Datenformat Version 1.0, 25.6.2014
Beispiel Version 29.09.2014

Zweck des Forums für elektronische Rechnungen bei der AWV e.V („FeRD“) ist u.a. die Schaffung und Spezifizierung 
eines offenen Datenformats für strukturierten elektronischen Datenaustausch auf der Grundlage offener und nicht 
diskriminierender, standardisierter Technologien („ZUGFeRD Datenformat“)


请参阅文档:


操作PDF包。


评论


OP要求使用GUI工具

–PawełŁukasik
17年11月16日在14:48

的确,我很想念,这与恕我直言的冲突

–tibar
17年11月16日在14:51

在大多数情况下是,但不必

–PawełŁukasik
17年11月17日在7:20