Word文件修复

2019-04-03 05:06河北李云飞
网络安全和信息化 2019年3期
关键词:偏移量文档中央

■ 河北 李云飞

编者按:在工作中,Office办公软件是必备之物,但有时也免不了某些软件出现问题,导致工作效率受到制约,本文讲解一些Word文件的修复方法。

Office 2007之后的Word文档格式都采用了Open XML的文档格式,Open XML格式上使用了标准的ZIP算法对文件内部数据进行了压缩处理,可以通过ZIP解压软件对其进行解压操作。

现在大多数的Word文件都是docx格式的,在工作中也经常会遇到docx文件的损坏,当docx文件由于各种原因(例如蓝屏等)损坏后,可以通过Office的自动备份来找回,如果没有备份就只有通过修复文件来找回数据了。

标准ZIP压缩文件格式分析

标准zip文件格式由三部分组成:zip压缩数据段、中央目录区、中央目录区尾部。

其中zip压缩数据段又分为zip文件头信息和压缩数据。如图1、2、3所示。表格中带☆的是在文件修复中经常用到的。

图1 ZIP压缩文件头结构

图2 中央目录区文件头结构

Office Open XML文档结构分析

利用ZIP解压软件对docx文档解压之后,发现很多文件夹和XML文件。其中,“[Content_Types].xml”定义了各部分的内容类型,“\_rals.rels”定义了部件之间的关联关系,“/docProps”中是一些文档的属性信息,“/word”目录里面存放着文档的所有信息, “header.xml”和“footer.xml”存放着页眉页脚信息,“/word/image”中存放着Word中的嵌入的图片信息,“/word/document.xml”存放着Word中的文本信息。

提取document.xml恢复文本信息

当docx文件损坏之后可以通过WinHex提取document.xml文件来恢复docx中的文本信息。

1.提取损坏文件的压缩数据段、中央目录、中央目录尾

通过WinHex中的搜索功能搜索关键字/Word/document.xml,找到该文件的起始位置,ZIP压缩数据段的总长度L=30+压缩后的大小+文件名的长度+扩展区的大小,通过图1可以算出ZIP压缩数据段的总长度。

选中document.xml的压缩数据段复制到WinHex新建文件中。document.xml对应的中央目录区数据可以通过WinHex搜索/Word/document.xml得到,中央目录区是以0x02014B50开始的,由于数据存储模式是Little-Endian模式,所以显示504B0102,如图4所示。

中央目录尾区可以通过WinHex搜索0x06054B50找到,由于数据存储模式是Little-Endian模式,所以这里用WinHex搜索十六进制的504B0506,中央目录区尾位于文件的最后,所以直接把WinHex拉到最后找就可以看到了,如图5所示。

最后,把找到的document.xml的中央目录区数据和最后的中央目录区尾部数据依次复制到压缩数据段后面。

2.修改中央目录区和中央目录区尾的数据

图3 中央目录区尾部结构

图4 Little-Endian模式下显示504B0102

图5 中央目录尾区显示

由于中央目录、中央目录尾复制到了WinHex新建文件中,里面对应的一些数值发生了变化,只有修改正确了才能把把document.xml正常解压出来。

因为当document.xml的压缩数据复制到WinHex新建文件中的时候相对位移就变成了0。所以要修改表2中央目录区偏移量42中的局部文件相对位移的值为0x0000,图3中央目录区尾部偏移量8的核心目录数量改为1,偏移量10的核心目录的结构总数改为1,偏移量12的核心目录大小改为63(0x3F),偏移量16核心目录开始位置改为0x532C,可以通过WinHex中的偏移量得到核心目录开始位置是0x532C。

3.恢复document.xml文件

修改完中央目录区和中央目录区尾的数据后就可以把文件另存为ZIP格式,然后正常解压出document.xml文件。

document.xml文件直接打开数据显示的不是很直观,可以通过新建一个docx文件然后替换document.xml,替换后打开docx文件会很直观的显示出恢复的文本数据。

利用工具修复文档提高效率

通过WinHex手动提取文本费时费力,一般Word文件修复可以通过一些现成的软件来修复的,例如EasyRecovery、OfficeFIX等。

OfficeFIX可以修复Word、Excel、PPT等一些文件,使用也很简便,首先选择要修复的文件类型,然后选择要修复的文件,最后点击Recover进行修复。虽然工具修复效率比较高,但是有些时候利用工具修复的效果不是很理想,这时就要通过WinHex手动修复文件了。

猜你喜欢
偏移量文档中央
浅谈Matlab与Word文档的应用接口
2022年中央一号文件解读
基于格网坐标转换法的矢量数据脱密方法研究
定了!中央收储冻猪肉2万吨
有人一声不吭向你扔了个文档
基于AutoLISP的有轨起重机非圆轨道动态仿真
卷烟硬度与卷接、包装工序相关性分析
Word文档 高效分合有高招
以南北地震带为例研究面向地震应急的宏观震中与微观震中偏移模型
防止“带病提拔”,中央放大招