深入浅出实战攻防恶意PDF文档
2010-09-30 12:55:34 来源:WEB开发网核心提示: 30obj/Type/Pages/Kids[40R]/Count1endobj要描述页面,我们必须规定页面的内容、用于显示这个页面的资源以及页面的大小,深入浅出实战攻防恶意PDF文档(4),这些任务可由下面的代码来完成:40obj/Type/Page/Parent30R/MediaBox[
3 0 obj
/Type /Pages
/Kids [4 0 R]
/Count 1
endobj
要描述页面,我们必须规定页面的内容、用于显示这个页面的资源以及页面的大小。这些任务可由下面的代码来完成:
4 0 obj
/Type /Page
/Parent 3 0 R
/MediaBox [0 0 612 792]
/Contents 5 0 R
/Resources <<
/ProcSet [/PDF /Text]
/Font << /F1 6 0 R >>
endobj
页面内容是由间接对象5来规定的。/MediaBox 是页面的尺寸。这个页面所用的资源是字体和PDF文字绘制例程。我们在间接对象6中将字体规定为[F1]。
间接对象5中存放的是页面内容,它是一种特殊的对象,即流对象。流对象可以用来保存由单词stream和endstream包围的对象内容。流对象的好处是允许使用多种类型的编码技术(在PDF语言中称为过滤器),例如压缩(例如zlib FlateDecode编码)。考虑到易读性,我们没有在这个流中实施压缩处理:
5 0 obj
/Length 43 >>
stream
BT /F1 24 Tf 100 700 Td (Hello World) Tj ET
endstream
endobj
这个流的内容是一组PDF文字绘制指令。这些指令是由BT和ET括起来的,实际上就是命令绘制例程做下面的事情:
使用大小为24的F1字体
转到100 700位置处
绘制文字:Hello World
在PDF语言中,字符串必须用圆括号括起来。
我们的PDF文档已经基本上组装好了。我们需要的最后一个对象是font(字体)对象:
[]
- ››实战案例分析:高质量软文对网站百度排名的影响
- ››实战经验浅谈网站搬家后的优化工作
- ››深入浅出实战攻防恶意PDF文档
- ››实战Active Directory站点部署与管理,Active Dir...
- ››实战操作主机角色转移,Active Directory系列之十...
- ››实战经验:巧用微博推广淘宝网店
- ››实战iPhone GPS定位系统
- ››实战Linux环境配置DBD:Oracle模块
- ››实战DeviceIoControl系列之一:通过API访问设备驱...
- ››实战DeviceIoControl系列之二:获取软盘/硬盘/光盘...
- ››实战DeviceIoControl系列之三:制作磁盘镜像文件
- ››实战DeviceIoControl系列之四:获取硬盘的详细信息...
更多精彩
赞助商链接