深入浅出实战攻防恶意PDF文档
2010-09-30 12:55:34 来源:WEB开发网核心提示: 60obj/Type/FontSubtype/Type1/Name/F1/BaseFont/Helvetica/Encoding/MacRomanEncodingendobj现在,阅读这个结构您应该没有问题了,深入浅出实战攻防恶意PDF文档(5),四、尾部上面就是绘制一个页面所需的全部对象
6 0 obj
/Type /Font
Subtype /Type1
/Name /F1
/BaseFont /Helvetica
/Encoding /MacRomanEncoding
endobj
现在,阅读这个结构您应该没有问题了。
四、尾部
上面就是绘制一个页面所需的全部对象。但是仅有这些内容还不足以使阅读程序(即显示pdf文档的程序,如Adobe的Acrobat Reader)来读取和显示我们的PDF文档。绘制例程需要知道文档描述起始于哪个对象(即root对象),以及每个对象的索引之类的技术细节。
每个对象的索引称为交叉引用xref,它描述每个间接对象的编号、版本和绝对的文件位置。PDF文档中的第一个索引必须从版本为65535的0号对象开始:
标识符xref后面的第一个数字是第一个间接对象(这里是0号对象)的编号,第二个数字是xref表(7个表项)的大小。
第一栏是间接对象的绝对位置。第二行的值12表明间接对象1的起始地址距文件开头为12字节。第二栏是版本,第三栏指出对象正在使用(用n表示)还是已经释放(用f表示)。
定义交叉引用之后,我们在尾部中定义root对象:
trailer
/Size 7
/Root 1 0 R
不难看出,这是一个字典。最后,我们需要利用xref元素的绝对位置和幻数%%EOF来结束这个PDF文档:
startxref
644
%%EOF
其中,644是在这个PDF文件内的xref的绝对位置。
五、PDF文档基础知识的回顾
我们一旦了解了PDF语言的语法和语义,就能轻松构建一个简单的PDF文档。为了便于阅读,我们在清单1中给出了完整的PDF文档。
%PDF-1.1
1 0 obj
/Type /Catalog /Outlines 2 0 R /Pages 3 0 R
- ››实战:企业使用交换机VLAN路由配置
- ››实战案例分析:高质量软文对网站百度排名的影响
- ››实战经验浅谈网站搬家后的优化工作
- ››深入浅出实战攻防恶意PDF文档
- ››实战Active Directory站点部署与管理,Active Dir...
- ››实战操作主机角色转移,Active Directory系列之十...
- ››实战经验:巧用微博推广淘宝网店
- ››实战iPhone GPS定位系统
- ››实战Linux环境配置DBD:Oracle模块
- ››实战DeviceIoControl系列之一:通过API访问设备驱...
- ››实战DeviceIoControl系列之二:获取软盘/硬盘/光盘...
- ››实战DeviceIoControl系列之三:制作磁盘镜像文件
更多精彩
赞助商链接