原创作品,非经作者本人授权谢绝转载!
【问题的引入】
微软公司的Office系列软件自发布以来被广泛应用于文档的编写、演示、统计等领域,PowerPoint是其中一款演示文稿软件。PowerPoint的普遍使用使得大量商业机密及创意产品资料以电子文档的形式保存,然而由于电子文档易复制、易修改的特性,与电子文档相关的知识产权纠纷频繁发生[1]。
在与电子文档相关的知识产权纠纷中,文档的来源性和编辑过程检测是检验的重点。现有的方法多为通过WinHex等二进制读取软件从文件底层读取文件信息,达到检测来源及恢复编辑过程的目的。而Office系列软件自2007版本之后采用了OOXML[2](Open OfficeXML)格式存储文件,OOXML是一种以XML为基础并以ZIP格式压缩的电子文件规范,它将文档属性、文档内容、图表、图片、音视频文件以及文档之间的关系等打包在一起,大大提高了文档的可恢复性。本文结合其独特的XML格式,提出了PowerPoint2010基于OOXML的来源检测及编辑过程恢复的方法。
【技术原理】
(1)PowerPoint文件结构分析
PPTX文件采用ZIP格式压缩,修改其后缀名为“ZIP”即可对其进行解压缩。解压缩后的PPTX文件夹由四部分组成,其中包括三个文件夹:_rels、docProps、ppt,以及一个xml文件:[Content_Types].xml。
_rels文件夹中只有一个.rels文件,它定义了部件之间的关联关系,是解析整个包时要浏览的第一个文件。
docProps文件夹包含三个文件:docProps\app.xml描述了软件版本、文档页数、字符总数等;docProps\core.xml描述了作者、文档创建时间、最后修改时间等;docProps\thumbnail.jpeg是演示文稿第一页的缩略图。
ppt文件夹是PowerPoint独有的目录,包含着其特有的文档信息。其中ppt\_rels 指定文档部件的集合如何组合为一个文档。ppt\media包含文档中嵌入的图片、音频、视频等多媒体文件。ppt\theme 描述了文档使用的主题风格。ppt\slides是最重要的文件夹,它包含了每页幻灯片的具体内容以及每页幻灯片使用的多媒体文件对应关系。其中,每一页幻灯片都以一个独立的xml文件格式存储,这些xml文件的命名规律为“slide+幻灯片序号.xml”,与之对应的,各页幻灯片的多媒体文件对应关系所在的文件名为“slide+幻灯片序号.xml.rels”。最后,ppt文件夹下的presentation.xml文件负责将整个文件夹中的内容串联在一起形成一个完整的文档[3]。
Content_types.xml定义出包中各部分的内容类型。
(2)PPTX文件来源性分析
所谓文件的来源性分析,即通过对源文件与目标文件进行比较,判断两文件是否由同一文件复制而来。
之前提到,幻灯片的具体内容存储在“slide+幻灯片序号.xml”文件中。分析PPTX文件是否同源,可从这些slide文件的内容入手。
由于xml文件以树状结构存储数据[4],以树状结构解读slide文件可以得到其根节点为,根节点包含两个一级子节点——和。其中,用户可在节点中创建形状树,也就是编辑幻灯片的具体内容。是的子节点,如果幻灯片中插入了图片、音频、视频等多媒体文件,里将存放这些多媒体文件的文件名及xml文档赋予它们的ID号码。中还包含着与同一级别的另一个子节点——,xml文档的用户可以在该节点中存放自定义的数据[3]。slide文件的树形结构图如图1所示。
图1 slide文件的树形结构图
由树形结构图可以看到,用户自定义节点中存放了四级子节点,该节点拥有属性val,该属性的值可称为幻灯片的creationID值。研究发现,同一演示文稿中的各幻灯片的creationID值均不相同,且分别建立的两个演示文稿文件,其对应页幻灯片的creationID值也不相同。为探究由同一文件复制而来的演示文稿creationID值的变化规律,课题组进行了大量实验。由实验结果总结的规律如表1所示:
操作 | creationID值是否变化 |
仅复制 | 不变 |
复制后修改幻灯片内容 | 不变 |
复制后增加新的幻灯片 | 原有幻灯片creationID不变,新增幻灯片分配新的creationID |
复制后删除原有部分幻灯片 | 未删除的幻灯片creationID不变 |
表1 creationID值的变化规律
由表1可以看出,如果演示文稿A由演示文稿B通过复制操作生成,不论对演示文稿B做内容修改还是对幻灯片页数进行增删,只要演示文稿A中还存留有演示文稿B的任意张幻灯片,其留存的幻灯片就会保留演示文稿B中幻灯片的creationID值。如图2所示为“sample.pptx”、“sample-副本.pptx”和“sample2.pptx”中slide1.xml的内容,其中“sample-副本.pptx”由“sample.pptx”复制而来,并对内容做了适当修改,“sample2.pptx”为另外创建的文件。可以看到前两个文件拥有相同的creationID值(2338748835),而另外创建的文件slide1.xml中的creationID值则完全不同(2411686777)。creationID值通常由8位以上数字组成,两个creationID值完全相同的概率极低。因此可以判定,演示文稿A如果含有与演示文稿B相同的creationID值,即可说明A与B同源。
图2 三个演示文稿中幻灯片的creationID值
(3)PPTX文件编辑顺序分析
所谓文件编辑顺序分析,即以单个演示文稿为分析对象,对演示文稿内幻灯片及其多媒体内容的增加、删除等编辑过程进行还原。
1)演示文稿的编辑时间链
之前提到,位于docProps文件夹下的core. xml描述了文档作者、创建时间以及最后修改时间等。研究发现,core.xml中记录的除了创建时间和修改时间之外,还有一个节点。经过实验,得到revision节点、创建时间及修改时间的变化规律如表2所示。
由表2可以看出,revision节点记录了演示文稿的版本号,即自创建以来修改过的次数。一个新建的pptx文档,其版本号为1。对其进行修改得到的pptx文档,其版本号将随着修改次数递增。图3所示的是演示文稿sample.pptx的原文件及其修改一次后的core.xml内容。因此,从revision的数值可以判断出文档的编辑次数。显然,revision较小的演示文稿的编辑顺序先于revision较大的演示文稿,结合修改时间即可得到文件编辑的时间链。
revision | 创建时间 | 修改时间 | |
原文件 | 1 | 创建pptx文件的时间 | 编辑好内容并保存的时间 |
修改1次 | 2 | 不变 | 修改1次并保存的时间 |
修改2次 | 3 | 不变 | 修改2次并保存的时间 |
修改3次 | 4 | 不变 | 修改3次并保存的时间 |
…… | …… | …… | …… |
修改N次 | N+1 | 不变 | 最近一次修改并保存的时间 |
表2 revision节点、创建时间及修改时间的变化规律
图3 sample.pptx及其修改一次后的core.xml
2)幻灯片及其多媒体内容的添加次序
之前提到,ppt\presentation.xml文件负责将整个演示文稿串联在一起。该xml文件的根节点是,其下的一级子节点中存储着若干二级子节点,即演示文稿中的幻灯片列表,节点中存储幻灯片的标识号(id)和索引号(r:id)。通过该索引号可在ppt\_rels\presentation.xml.rels文件中查询到ppt\slides文件夹下对应的幻灯片的名称[5]。
如果幻灯片中插入了多媒体文件,这些多媒体文件的信息将储存在“ppt\slides\slide+幻灯片序号.xml”的节点。如图1所示,节点包含三个子节点——、、,其中,中存储了xml文件赋予该多媒体文件的名字(name)和标识号(id),则存储了索引号(r:embed),通过索引号可以在ppt\slides\_rels关系文件中查询多媒体文件的存储路径。
可以看出,无论是幻灯片本身还是幻灯片中添加的多媒体文件,都拥有各自的标识号(id),经过实验,本文总结出幻灯片ID与多媒体ID的变化规律,如表3所示:
幻灯片ID | 多媒体ID | ||
幻灯片1 | 256 | 多媒体1 | 4 |
多媒体2 | 5 | ||
…… | …… | ||
多媒体M | M+3 | ||
幻灯片2 | 257 | 多媒体1 | 4 |
多媒体2 | 5 | ||
…… | …… | ||
多媒体P | P+3 | ||
…… | …… | …… | …… |
幻灯片N | N+255 | 多媒体1 | 4 |
多媒体2 | 5 | ||
…… | …… | ||
多媒体Q | Q+3 |
表3 幻灯片ID与多媒体ID的变化规律
由表3可以看出,随着幻灯片的增加,幻灯片的ID随之递增。首张幻灯片的ID值默认为“256”,第二张幻灯片则为“257”,以此类推。而当删除其中某个幻灯片时,其他幻灯片的id值并不会发生改变。同样的,随着幻灯片中插入多媒体文件数量的增加,多媒体文件的id值也呈递增,幻灯片中加入的首个多媒体文件的ID值默认为“4”,第二个多媒体文件为“5”,以此类推,当删除其中某个多媒体文件时,其他多媒体文件的id值也不会发生改变。因此,完全可以由幻灯片ID和多媒体文件ID分析出幻灯片及其多媒体文件的插入顺序及删除情况。如图4所示,在sample.pptx中先后添加三张幻灯片,其幻灯片ID分别为“256”、“257”、“258”,删除第二张幻灯片,可以发现幻灯片ID出现断层。如图5所示,在sample.pptx的第一张幻灯片中先后插入三张图片,其多媒体文件ID分别为“4”、“5”、“6”,删除第二张图片,可以发现多媒体文件ID出现断层。
图4 sample.pptx的幻灯片ID列表
图5 sample.pptx及其修改后的多媒体文件ID列表
【系统功能】
基于第二节所述原理,课题组使用VB.NET语言实现了Office PowerPoint 2010溯源及多媒体编辑顺序分析工具。系统分为来源分析模块和多媒体文件分析模块。两个模块的设计流程图如图6和图7所示。
为了测试系统的功能,课题组首先创建了一个单页的演示文稿文件“图片实验.pptx”,并在第一页插入了三张图片。复制“图片实验.pptx”得到“图片实验-副本.pptx”,打开副本并删除三张图片中的第二张。图8显示的是系统对两个演示文稿的来源性分析结果。从结果可以清晰地看出两个演示文稿来源相同,且文件2(图片实验.pptx)的创建早于文件1(图片实验-副本.pptx)。打开图片实验.pptx,对幻灯片1进行分析,幻灯片1中的多媒体文件添加次序如图7所示。可以看出幻灯片1中的多媒体文件序号从“4”开始,顺序递增至“6”。打开图片实验-副本.pptx,对幻灯片1进行分析。幻灯片1中的多媒体文件添加次序如图9所示。可以看出幻灯片1中的多媒体文件序号从“4”开始,但缺少了序号为“5”节点。结合来源性分析可以判断,文件1为文件2复制所得,并在文件2的基础上删除了“图片4”。
图6来源分析模块设计流程图
图7 多媒体文件分析模块设计流程图
图8 来源性分析结果
图9 多媒体文件列表及添加次序
【参考文献】
[1]罗文华,孙道宁.OfficeWord文档溯源方法研究[J].警察技术,2015(04).
[2] ISO/IEC 29500:2006 Information technology -- Document description and processinglanguages--Office Open XML File Formats-Part1-4[S],2008.
[3]滑淑然.演示文稿文档格式标准结构分析[J].北京信息科技大学学报(自然科学版),2010年S2期.
[4]郭林.面向XML文档的数据挖掘技术研究[D].大连:大连理工大学,2005年.
[5] Rice Frank.Introducing the office(2007) open xml file formats[OL].[2012.11.07].
Office Word文档溯源方法研究
如何对电子文件的时间信息进行取证和判断分析