一种Office文件目录区分片重组方法技术

技术编号:21970988 阅读:44 留言:0更新日期:2019-08-28 01:23
一种Office文件目录区分片重组方法属于数据处理技术领域,尤其涉及一种Office文件目录区分片重组方法。本发明专利技术提供一种Office文件目录区分片重组方法。本发明专利技术包括以下步骤:步骤1:根据当前处理分片中的目录结束记录确定第i个Office文件共包含n个目录项,同时确定当前处理分片中实际包含m个目录项,如果n=m,说明目录区未发生分片,结束。如果n>m,说明目录发生分片,执行步骤2。步骤2:搜索全部Office分片中,不包含目录结束记录,且目录项数量与n‑m相同的分片。如果找到匹配分片,执行步骤3。否则,结束。

A method of reorganizing directory areas of office files

【技术实现步骤摘要】
一种Office文件目录区分片重组方法
本专利技术属于数据处理
,尤其涉及一种Office文件目录区分片重组方法。
技术介绍
Office办公软件被广泛应用于各个领域,Office文件中存储了大量有价值的数据信息。为了逃避法律制裁,犯罪分子会将存储涉案信息的Office文件删除,甚至直接格式化存储设备。恢复这些被删除的涉案Office文档对公安机关的调查取证工作有重要意义。Office文件在编辑过程中,存储在磁盘上的文件数据极易出现分片情况,即文件内容被分为多段,分别存放在几块非连续存储区域内。图1显示的是某个Office文件被分成6个分片,分别存放在磁盘的6块存储区域内,图中给出了每个分片在磁盘空间内的起始簇号、分片的逻辑次序及分片占用的簇块个数。以第1个分片为例,它的起始簇号是0XE0E6,共占用0X06个簇块。从图1可见,这6个分片并不是按照逻辑次序依次存放,而是按照3、4、5、1、2、6的顺序存放。当被删Office文件的MFT记录遭到覆盖时,现有数据恢复工具(如Encase、X-WAY)无法有效恢复这类分段存储的Office文档。图2说明了Office文件数据分片识别、排序、重组方法的基本原理。图2-a显示了一个Office文件的基本存储结构,每个Office文件均由三部分组成,即数据块区、目录区和目录结束记录。数据块区包含若干个数据块,每个数据块由块首部和具体的块数据构成,图2-a所示Office文件共包含4个数据块,即obj1-obj4。目录区由若干个目录项构成,每个目录项指向一个特定的Office数据块,目录项个数与数据块总数相同。目录项存储了对应数据块在Office文件内的偏移地址,同时记录了数据块对象名、块数据压缩前后大小和块数据CRC32校验值(注意这个校验值是未压缩块数据的CRC32校验值),上述信息也同步存储在相应Office数据块首部。在Office文件重组阶段,可以从目录项中提取出上述四种信息,将这些信息作为特征值搜索相匹配的数据块,再按照目录项中给出的偏移地址重组数据块。由于每组特征值包括了数据块对象名、压缩前后块数据大小和块数据CRC32校验值,共四个特征点,可以有效避免误报现象的发生。图2-b显示这个Office文件并未存储在一块连续的存储空间内,而是被分为三个分片存放在磁盘内,且这三个分片也不是按照逻辑顺序依次存放,而是按照分片2、分片3、分片1的次序存储。图2-c显示了Office数据分片的识别结果,采用的识别方法是根据ZIP标志位和修改时间字段在磁盘空闲空间内查找全部Office数据块,如果两个数据块首尾相接,说明它们隶属于同一个数据分片,否则说明出现了新的分片,分片计数值加一。共有三种类型Office数据块,标志位分别是0X504B0102或0X504B0304或0X504B0506;由于其它类型ZIP文件(如APK文件)也存在这些标志位,因此,如果只使用标志位作为关键词进行搜索,会存在大量误报现象。为了避免这一问题,增加修改时间字段作为第二组关键词,Office数据块的修改时间字段值固定为0X00002100,即1980-01-0100:00:00,而其它类型ZIP数据块这个字段存储的是数据块内容发生变化的实际时间,因此通过这个字段值可以识别出全部Office数据块,避免误报。通过Office数据块首部存储的标志位可以确定数据块的起始地址,通过数据块首部存储的长度值可以确定数据块的结束位置,如果两个数据块首尾相接,说明它们隶属于同一个数据分片,否则说明出现了新的分片,分片计数值加一。利用这种方法可以识别出磁盘空闲空间内的全部Office数据分片,图2-b所示存储空间内Office数据分片识别结果如图2-c所示。从图2-c可以看到三个分片均存在识别误差,这是由于分片边界位置数据块识别错误导致的,原因分析如下:当一个Office文件在磁盘内分段存储时,位于分片边界位置的Office数据块被一分为二,包含首部的块数据存储在前一个分片末尾,包含尾部的块数据存储在后一个分片的起始位置。如图2-b所示,obj2数据块被分割为两部分,第一部分obj2-1存储在分片1尾部,第二部分obj2-2存储在分片2首部。obj4数据块也被分割为两部分,第一部分obj4-1存储在分片2尾部,第二部分obj4-2存储在分片3首部。obj2-2和obj4-2首部均没有标志位特征值,因此在进行数据块识别时,这两部分内容没有识别出来。同时,通过标志位识别出obj2-1和obj4-1存储的数据块首部之后,用块首部起始地址加上数据块长度计算出块结束地址,导致obj2和obj4数据块识别错误,将部分不属于Office文件的数据内容识别进来,在图中用error字符进行了标注,错误识别的数据长度与未识别的数据长度相等。在Office文件数据分片排序、重组阶段,首先通过目录结束记录计算出Office文件总大小,计算公式如下:Office文件总大小=目录区偏移地址+目录区大小+目录结束记录长度,其中目录区在Office文件内的偏移地址恰好等于数据块区大小,因此三者之和等于Office文件总大小。之后创建一个新的Office文件,新文件大小等于待恢复的Office文件总大小。将目录区数据写入新建文件尾部,再根据目录项中存储的数据块对象名、压缩前后块数据大小和CRC32校验值等特征值定位相应的数据块,按照目录项中记录的偏移地址,将数据块写入新文件特定的偏移位置。图2-d为恢复结果,obj2和obj4数据块错误识别的数据内容也被写入新文件。如果此时双击打开新文件,通常会提示出错,部分致命错误(如document.xml受损)会造成文件无法正常显示,需要对这类识别误差进行修正。下面以图2-c中obj4数据块的修复为例分析受损数据块的修复原理,修复过程如图3所示,这里指定簇块大小为4096字节。图3中SP1’为分片2内最后一个数据块首部起始地址,down(SP1’)为分片2内最后一个数据块首部向下到达的第一个簇块边界位置,SP1为分片3内第一个数据块起始位置,UP(SP1)为分片3内第一个数据块首部向上到达的首个簇块边界位置。利用obj4块首部数据计算出块长度值为FLEN,如长度值满足FLEN=down(SP1’)–SP1’+n×4096+SP1–up(SP1),则两个分片可以尝试配对修复。在图3所示例子中,FLEN=down(SP1’)–SP1’+2×4096+SP1–up(SP1),长度值满足配对条件,可以尝试进行修复。目前已知数据块第一个分段obj4-1的起始地址是SP1',第二个分段obj4-2的结束地址是SP1,只要能计算出第一个分段的结束位置(即分片2的结束位置)和第二个分段的起始位置(即分片3的起始位置),即可重组两个分段。需要注意的是,由于磁盘空间以簇块为分配单位,因此,分片起始或结束位置一定位于簇块边界。本专利技术基本思路是通过不断调整数据块两个分段的大小,来探测正确的分片位置,直至动态组建的数据块CRC32校验值与块首部存储的CRC32值相同。首先将第一个分段大小预设为可能达到的最大值,即down(SP1’)–SP1’+n×4096,第二个分段大小设置为可能达到的最小值,即SP1本文档来自技高网...

【技术保护点】
1.一种Office文件目录区分片重组方法,其特征在于包括以下步骤:步骤1:根据当前处理分片中的目录结束记录确定第i个Office文件共包含n个目录项,同时确定当前处理分片中实际包含m个目录项,如果n = m,说明目录区未发生分片,结束;如果n > m,说明目录发生分片,执行步骤2;步骤2:搜索全部Office分片中,不包含目录结束记录,且目录项数量与n ‑ m相同的分片;如果找到匹配分片,执行步骤3;否则,结束;步骤3:计算步骤2命中分片最后一个目录项向下到磁盘簇块边界的距离p,计算当前处理分片中第一个目录项向上到磁盘簇块边界的距离q,判断p + q与目录项的总长度r是否相同;如果相同,则将两个分片内容首尾相接,重组第i个Office文件的完整目录,结束,否则,执行步骤2,寻找下一个候选分片。

【技术特征摘要】
1.一种Office文件目录区分片重组方法,其特征在于包括以下步骤:步骤1:根据当前处理分片中的目录结束记录确定第i个Office文件共包含n个目录项,同时确定当前处理分片中实际包含m个目录项,如果n=m,说明目录区未发生分片,结束;如果n>m,说明目录发生分片,执行步骤2;步骤2:搜索全部Office分片中,不包含目录结束记录,且目录项...

【专利技术属性】
技术研发人员:徐国天
申请(专利权)人:中国刑事警察学院
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1