一种Office文件数据分片识别、排序、重组方法技术

技术编号:21913890 阅读:52 留言:0更新日期:2019-08-21 12:24
一种Office文件数据分片识别、排序、重组方法属于数据处理技术领域,尤其涉及一种Office文件数据分片识别、排序、重组方法。本发明专利技术提供一种Office文件数据分片识别、排序、重组方法。本发明专利技术包括以下步骤:步骤1:在磁盘空闲空间内,识别出全部Office数据分片;步骤2:在全部Office分片中,根据0X 50 4B 05 06标志位,查找包含Office文件尾部目录结束记录的数据分片;令此类分片总个数为t,即待恢复的Office文件总个数为t;设置整数变量i初值为0;步骤3:根据第i个Office文件目录项定位第i个文件的全部数据块;步骤4:重组第i个Office文件。

A Method of Fragmentation Recognition, Sorting and Reorganization of Office File Data

【技术实现步骤摘要】
一种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,第二个分段大小设置为可能达本文档来自技高网...

【技术保护点】
1.一种Office文件数据分片识别、排序、重组方法,其特征在于包括以下步骤:步骤1:在磁盘空闲空间内,识别出全部Office数据分片;步骤2:在全部Office分片中,根据0X 50 4B 05 06标志位,查找包含Office文件尾部目录结束记录的数据分片;令此类分片总个数为t,即待恢复的Office文件总个数为t;设置整数变量i初值为0;步骤3:根据第i个Office文件目录项定位第i个文件的全部数据块;步骤4:重组第i个Office文件;步骤5:设置i = i + 1,如果i < t,则执行步骤3,否则,结束。

【技术特征摘要】
1.一种Office文件数据分片识别、排序、重组方法,其特征在于包括以下步骤:步骤1:在磁盘空闲空间内,识别出全部Office数据分片;步骤2:在全部Office分片中,根据0X504B0506标志位,查找包含Office文件尾部目录结束记录的数据分片;令此类分片总个数为t,即待恢复的Office文件总个数为t;设置整数变量i初值为0;步骤3:根据第i个Office文件目录项定位第i个文件的全部数据块;步骤4:重组第i个Office文件;步骤5:设置i=i+1,如果i<t,则执行步骤3,否则,结束。2.根据权利要求1所述一种Office文件数据分片识别、排序、重组方法,其特征在于所述步骤1包括以下步骤:步骤1):磁盘内共有n块空闲存储空间,设置整数变量i和j初值均为0;步骤2):设置搜索起始地址SP为第i块磁盘空闲空间起始地址;步骤3):在第i块磁盘空闲空间内,从起始地址SP开始,根据ZIP标志位和修改时间字段查找Office数据块,如查找成功,确定数据块的起始位置BP1和长度值BL1,同时记录分片起始位置为CP[j]=BP1,分片长度值CL[j]=BL1,设置SP=BP1+BL1,执行步骤4);如查找失败;则执行步骤6);ZIP标志位值为0X504B0102或0X504B0304或0X504B0506,数据块的修改时间字段值为0X00002100,即1980-01-0100:00:00;步骤4):在第i块磁盘空闲空间内,从起始位置SP开始,根据ZIP标志位和修改时间字段查找Office数据块,如查找成功,执行步骤5);否则,执行步骤6);步骤5):确定步骤4)命中数据块的起始位置BP2和长度值BL2;如果BP1+BL1=BP2,即两个数据块首尾相接,则令CL[j]=CL[j]+BL2,SP=BP2+BL2,BP1=BP2,BL1=BL2,执行步骤4);如果BP1+BL1≠BP2,则令j=j+1,新识...

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

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

1