WEB开发网
开发学院网络安全安全技术 深入浅出实战攻防恶意PDF文档 阅读

深入浅出实战攻防恶意PDF文档

 2010-09-30 12:55:34 来源:WEB开发网   
核心提示: 我们首先介绍的是catalog(即目录)对象,它告诉PDF阅读程序(例如Adobe的Acrobat Reader),深入浅出实战攻防恶意PDF文档(2),为了装配这个文档,需要从哪里开始查找对象:10obj/Type/Catalog/Outlines20R/Pages30R这实际上是一个间

我们首先介绍的是catalog(即目录)对象,它告诉PDF阅读程序(例如Adobe的Acrobat Reader),为了装配这个文档,需要从哪里开始查找对象:

1 0 obj

/Type /Catalog

/Outlines 2 0 R

/Pages 3 0 R

这实际上是一个间接对象,因为它具有一个编号,并且可以通过该编号来引用该对象。其语法很简单:一个编号、一个版本号、单词obj、对象本身,最后是单词endobj,如下所示:

1 0 obj

object

endobj

通过联合使用对象编号和版本号,我们就能够唯一地引用一个对象。

我们第一个对象catalog的类型是字典类型,字典类型在pdf文档中非常常见。该类型以符号<<开头,并以符合>>作为结束,如下所示:

dictionary content 

字典的元素由键和值两部分组成,也就是说一个元素就是一个名/值对,即数据有一个名称,还有一个与之相对应的值;字典不仅可以存放元素,而且还能存放对象甚至其他字典。 大部分字典都是利用第一个元素来声明自身的类型,该元素以/type为键,其后跟一个类型本身的名称(对本例而言就是/Catalog)为值:

(/Type /Catalog) 

对象catalog必须给出在这个PDF中能找到的页面(对应于pages对象)和大纲(对应于outline对象),如下:

/Outlines 2 0 R

/Pages 3 0 R

2 0 R和3 0 R 分别表示引用间接对象2和间接对象3。间接对象2描述大纲,间接对象3描述页面。

下面开始为我们的PDF文档添加第二个间接对象:

2 0 obj

/Type /Outlines

/Count 0

endobj

上一页  1 2 3 4 5 6 7  下一页

Tags:深入浅出 实战 攻防

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接