■ 河北 李云飛
編者按:在工作中,Office辦公軟件是必備之物,但有時也免不了某些軟件出現(xiàn)問題,導致工作效率受到制約,本文講解一些Word文件的修復方法。
Office 2007之后的Word文檔格式都采用了Open XML的文檔格式,Open XML格式上使用了標準的ZIP算法對文件內(nèi)部數(shù)據(jù)進行了壓縮處理,可以通過ZIP解壓軟件對其進行解壓操作。
現(xiàn)在大多數(shù)的Word文件都是docx格式的,在工作中也經(jīng)常會遇到docx文件的損壞,當docx文件由于各種原因(例如藍屏等)損壞后,可以通過Office的自動備份來找回,如果沒有備份就只有通過修復文件來找回數(shù)據(jù)了。
標準zip文件格式由三部分組成:zip壓縮數(shù)據(jù)段、中央目錄區(qū)、中央目錄區(qū)尾部。
其中zip壓縮數(shù)據(jù)段又分為zip文件頭信息和壓縮數(shù)據(jù)。如圖1、2、3所示。表格中帶☆的是在文件修復中經(jīng)常用到的。

圖1 ZIP壓縮文件頭結(jié)構(gòu)

圖2 中央目錄區(qū)文件頭結(jié)構(gòu)
利用ZIP解壓軟件對docx文檔解壓之后,發(fā)現(xiàn)很多文件夾和XML文件。其中,“[Content_Types].xml”定義了各部分的內(nèi)容類型,“\_rals.rels”定義了部件之間的關聯(lián)關系,“/docProps”中是一些文檔的屬性信息,“/word”目錄里面存放著文檔的所有信息, “header.xml”和“footer.xml”存放著頁眉頁腳信息,“/word/image”中存放著Word中的嵌入的圖片信息,“/word/document.xml”存放著Word中的文本信息。
當docx文件損壞之后可以通過WinHex提取document.xml文件來恢復docx中的文本信息。
通過WinHex中的搜索功能搜索關鍵字/Word/document.xml,找到該文件的起始位置,ZIP壓縮數(shù)據(jù)段的總長度L=30+壓縮后的大小+文件名的長度+擴展區(qū)的大小,通過圖1可以算出ZIP壓縮數(shù)據(jù)段的總長度。
選中document.xml的壓縮數(shù)據(jù)段復制到WinHex新建文件中。document.xml對應的中央目錄區(qū)數(shù)據(jù)可以通過WinHex搜索/Word/document.xml得到,中央目錄區(qū)是以0x02014B50開始的,由于數(shù)據(jù)存儲模式是Little-Endian模式,所以顯示504B0102,如圖4所示。
中央目錄尾區(qū)可以通過WinHex搜索0x06054B50找到,由于數(shù)據(jù)存儲模式是Little-Endian模式,所以這里用WinHex搜索十六進制的504B0506,中央目錄區(qū)尾位于文件的最后,所以直接把WinHex拉到最后找就可以看到了,如圖5所示。
最后,把找到的document.xml的中央目錄區(qū)數(shù)據(jù)和最后的中央目錄區(qū)尾部數(shù)據(jù)依次復制到壓縮數(shù)據(jù)段后面。

圖3 中央目錄區(qū)尾部結(jié)構(gòu)

圖4 Little-Endian模式下顯示504B0102

圖5 中央目錄尾區(qū)顯示
由于中央目錄、中央目錄尾復制到了WinHex新建文件中,里面對應的一些數(shù)值發(fā)生了變化,只有修改正確了才能把把document.xml正常解壓出來。
因為當document.xml的壓縮數(shù)據(jù)復制到WinHex新建文件中的時候相對位移就變成了0。所以要修改表2中央目錄區(qū)偏移量42中的局部文件相對位移的值為0x0000,圖3中央目錄區(qū)尾部偏移量8的核心目錄數(shù)量改為1,偏移量10的核心目錄的結(jié)構(gòu)總數(shù)改為1,偏移量12的核心目錄大小改為63(0x3F),偏移量16核心目錄開始位置改為0x532C,可以通過WinHex中的偏移量得到核心目錄開始位置是0x532C。
修改完中央目錄區(qū)和中央目錄區(qū)尾的數(shù)據(jù)后就可以把文件另存為ZIP格式,然后正常解壓出document.xml文件。
document.xml文件直接打開數(shù)據(jù)顯示的不是很直觀,可以通過新建一個docx文件然后替換document.xml,替換后打開docx文件會很直觀的顯示出恢復的文本數(shù)據(jù)。
通過WinHex手動提取文本費時費力,一般Word文件修復可以通過一些現(xiàn)成的軟件來修復的,例如EasyRecovery、OfficeFIX等。
OfficeFIX可以修復Word、Excel、PPT等一些文件,使用也很簡便,首先選擇要修復的文件類型,然后選擇要修復的文件,最后點擊Recover進行修復。雖然工具修復效率比較高,但是有些時候利用工具修復的效果不是很理想,這時就要通過WinHex手動修復文件了。