PDF文件格式分析.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PDF文件格式分析

题目:PDF 文件格式分析 Date:2010.10.31 Author:Cryin Blog:/justear 一、概述: 结构化的文档格式PDF(Portable Document Format)是由美国排版与图像处理软件公司 Adobe于1993年首次提出的。Adobe Reader这款pdf阅读器软件相信大家并不陌生,人们 熟知它的原因是因为它的应用相当普及,可能接触过计算机的人中没有几个会不知道它,但 是相信也有一部分人注意到Adobe这款软件是因为它频频爆出漏洞的缘故,号称漏洞之王 的Adobe似乎有报不完的漏洞,时不时就会给人以惊喜,其潜力真是不容置疑!这样说来, 如果想对Adobe的漏洞原理进行分析。了解PDF 文件的格式就变得尤为重要了! 二、PDF 文件结构: PDF 的结构可以从文件结构和逻辑结构两个方面来理解。PDF 的文件结构指的是其文 [1] 件物理组织方式,逻辑结构则指的是其内容的逻辑组织方式 。 1、数据对象类型: PDF 文件的基本元素是PDF 对象(PDF Object),PDF 对象包括直接对象(Direct Object) 和间接对象(Indirect Object);其中直接对象如下几种基本类型:布尔型(Boolean)、数值型 (Number)、字符串型(String)、名字型(Name)、数组型(Array)、字典型(Dictionary)、流对象 (Stream)以及空对象(Null);间接对象是一种标识了的PDF 对象,这个标识叫作间接对象的 ID。标识的目的是为了让别的PDF 对象引用。任何PDF 对象标识后都变成了间接对象。 2、PDF 文件结构: PDF 的文件结构(即物理结构)包括四个部分:文件头(Header)、文件体(Body)、交叉引 用表(Cross-reference Table)和文件尾(Trailer),如图-1 所示: 图-1PDF 文件结构 文件头(Header)指明了该文件所遵从PDF 规范的版本号,它出现在PDF 文件的第一行。 如%PDF-1.6表示该文件格式符合PDF1.6规范。 文件体(Body)由一系列的PDF 间接对象组成。这些间接对象构成了PDF 文件的具体内 容如字体、页面、图像等等。 交叉引用表(Cross-reference Table)则是为了能对间接对象进行随机存取而设立的一个 间接对象地址索引表。 文件尾(Trailer)声明了交叉引用表的地址,指明文件体的根对象(Catalog),还保存了加 密等安全信息。根据文件尾提供的信息,PDF 的应用程序可以找到交叉引用表和整个PDF 文件的根对象,从而控制整个PDF 文件。 3、PDF 文档结构: PDF 的文档结构反映了文件体中间接对象间的等级层次关系。PDF 的文档结构是一种 树型结构如图-2所示。树的根节点就是PDF 文件的目录对象(Catalog)。这个目录对象是PDF 文档的根对象,包含PDF 文档的大纲(Outlines)和页面组对象(Pages)。根节点下有四个子树: 页面树(Pages Tree)、书签树(Outline Tree)、线索树(Article Threads)、名字树(Named Destination)。 图-2PDF 文档结构 4、PDF 中的资源: PDF 文件中的内容(如文字、图形、图像)都保存在页面对象的Contents关键字对应的流 对象(Stream)中。内容流(Content Stream)中用到了很多基本对象如数字、字符串,这些都是 用直接对象(DirectObject)表示的。但还有其他一些对象如字体(Font),本身就是用字典对象 (Dictionary)或流对象(Stream)来表示的,无法用直接对象表示,而内容流中又不能出现任何 间接对象,于是就将这些对象命名,并在内容流中用相应的名字来表示它们。这些用名字来 表示的对象就称作命名资源(NamedResources)。 在页面对象中有一个资源项(Resources Key),该项列出了内容流中用到的所有资源, 并建立了一个资源名字与资源对象本身的映射表。 PDF 中的命名资源有:指令集(ProcSet)、字体(Font)、色彩空间(Color space)、外

您可能关注的文档

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档