首頁 > 遊戲

「技術視界」Microsoft文件檔案損壞,怎麼修復?

由 效率源 發表于 遊戲2021-12-14

簡介lDOC文件結構複合文件以sectors為基本單位對檔案資料進行管理,如圖2所示第一個資料扇區HEADER至關重要,其中儲存了管理檔案扇區內容的配置表資訊,以及檔案相關屬性描述資訊

因重新命名損壞的文件怎麼恢復

Microsoft文件是Microsoft公司的一個檔案處理程式生成的檔案格式。Microsoft文件在我們的工作生活中運用的非常廣泛,因為它屬於電子資料中的一類,所以也就具有電子資料的特性:無形性、多樣性、真實性、易破壞性。因為其具有易破壞性,所以針對Microsoft文件檔案的修復是本文所要論述的內容。

任何文件檔案的修復都需要先了解其文件結構,針對Microsoft文件的檔案結構,我們分為兩類來討論:

其中一類是DOC/XLS/PPT

,是Microsoft office 2007及之前的版本使用的檔案格式,它們是複合文件,檔案中包含文字、圖片、電子表格資料、聲音、影片影象以及其他資訊。

◆另一類是DOCX/XLSX/PPTX

,它們是Microsoft office 2007之後版本使用的檔案格式,是基於office Open XML標準的壓縮檔案格式,其中也包含文字、圖片、電子表格資料、聲音、影片影象等複合資訊,但是它與複合文件不同之處在於,所有的檔案資訊都是基於XML檔案進行儲存之後,再對於所有的檔案資料進行壓縮處理。

複合文件

(DOC/XLS/PPT)

「技術視界」Microsoft文件檔案損壞,怎麼修復?

1。

複合文件概述

複合文件( Compound Document ) 是一種不僅包含文字而且包括圖形、電子表格資料、聲音、影片圖象以及其它資訊的文件。可以把複合文件想象成一個所有者,它裝著文字、圖形以及多媒體資訊如聲音和圖象。目前建立複合文件的趨勢是使用面向物件技術,在這裡,非標準資訊如影象和聲音可以作為獨立的、自包含式物件包含在文件中。Document、Excel、PowerPoint等都是用這種格式儲存的。

複合文件的原理就像一個檔案系統(檔案系統:如 FAT 與 NTFS )。複合文件將資料分成許多流( Streams ),這些流又儲存在不同的倉庫( Storages )裡。將複合文件想象成你的 D 盤, D 盤用的是 NTFS ( NT File System )格式,流就相當於 D 盤裡的檔案,倉庫就相當於 D 盤裡的資料夾。

流和倉庫的命名規則與檔案系統相似,同一個倉庫下的流及倉庫不能重名,不同倉庫下可以有同名的流。每個複合文件都有一個根倉庫( root storage )。如圖1所示:

「技術視界」Microsoft文件檔案損壞,怎麼修復?

圖1複合文件倉庫和流結構的關係

複合文件中所有的流又分成更小的資料塊,叫做資料扇區(sectors)。Sectors可能包含控制資料或使用者資料。整個檔案由一個頭( Header )結構以及其後的所有 Sectors 組成。Sectors 的大小在頭中確定,且每個 Sectors 的大小都相同,如圖2所示:

「技術視界」Microsoft文件檔案損壞,怎麼修復?

圖2 複合文件sectors結構

2。l

DOC文件結構

複合文件以sectors為基本單位對檔案資料進行管理,如圖2所示第一個資料扇區HEADER至關重要,其中儲存了管理檔案扇區內容的配置表資訊,以及檔案相關屬性描述資訊。整個檔案的資料內容均是以HEADER資料扇區的內容為基礎進行儲存管理的。若該扇區被破壞,則會導致檔案內容無法正常開啟使用。而關於複合文件基於結構的檔案修復方案,也是基於HEADER資料扇區管理的所有扇區內容展開的。

在複合文件中涉及多種扇區配置表的概念,其中包含三類扇區配置表:

一是主扇區配置表MSAT,管理文件所有用來存放扇區配置表的扇區數。

二是短扇區配置表SSAT,管理文件中小於指定流大小的短流扇區數。

三是扇區配置表SAT,管理所有使用者流(短流除外)和內部控制流的扇區數。在複合文件中扇區數透過SID來表示,一個配置表就是一個SID鏈。

以doc文件為例說明覆合文件基於結構的修復方案:

Doc文件的儲存結構,如圖3所示:

「技術視界」Microsoft文件檔案損壞,怎麼修復?

圖3 doc文件儲存結構

圖3中各部分結構在任一doc文件中並不一定按照該順序儲存,如圖3中doc文件包含各部分的儲存順序和資料扇區排列方式,是以Root Entry為入口,構建一個獨立的紅黑樹(red-black tree),而圖3中各部分在doc文件中的儲存順序就是以紅黑樹中各部分的節點描述資訊進行排列儲存的。

圖3中各部分儲存的內容介紹如表所示:

表3 doc文件結構描述

「技術視界」Microsoft文件檔案損壞,怎麼修復?

3。

複合文件修復方案

「技術視界」Microsoft文件檔案損壞,怎麼修復?

圖4 複合文件修復方案

複合文件檔案修復方案有兩種,一是基於扇區結構的修復方案,二是基於流資料的修復方案。

基於扇區結構的修復方案:

1、HEADER扇區受損

根據HEADER扇區的固定結構,對HEADER扇區中缺失或錯誤的欄位內容進行修改處理,確保HEADER扇區的內容能夠與文件的配置表資訊、文件屬性描述資訊、文件扇區大小等資訊正確對應。

HEADER扇區的資料內容結構如圖5所示。

「技術視界」Microsoft文件檔案損壞,怎麼修復?

圖5 HEADER扇區

2、內部控制流扇區受損

內部控制流扇區一般指的是文件的配置表扇區內容被破壞,包括SAT、SSAT、MSAT這三類配置表扇區內包含的SID值與文件的實際情況不能一一的對應起來,則需要結合HEADER扇區和文件實際扇區內容的情況,對文件中所有的扇區進行解析,判斷每個扇區內資料結構對內部控制流扇區進行修改處理,從而重新生成修復完成後的複合文件。

3、使用者資料流扇區受損

使用者資料流扇區一般指的是在生成檔案時,因使用者對文件的增刪改等操作而改變的文件中儲存的資料流扇區被破壞的情況下,對這部分扇區內容進行修復處理。對於這部分資料,則需要結合圖3中描述的檔案結構來確定文件中儲存這些結構的扇區位置,然後判斷是其中的哪些結構錯誤或缺失造成檔案被破壞,再針對被破壞結構結合其中儲存的固定資訊內容進行修復處理。

基於流資料的修復方案:

對於基於流資料的修復方案,針對的是複合文件中基本的扇區結構已經被完全破壞,不能透過文件的扇區配置表以及目錄資料流對文件的內容按照圖3的結構進行判斷處理的情況。

結合複合文件的概念,因為複合文件中儲存的內容可能有文字、圖片、影片、聲音等型別的資料。而這些資料儲存在文件中並沒有進行再壓縮操作,基於流資料的修復方案,就是利用這一點,針對文件中可能存在的不同型別的資料,按照這些型別的資料本身具備的資料結構特點,對文件進行逐位元組解析判斷。

圖片、影片、聲音這類的資料因其資料格式都有其固定的結構和標識,在對文件內容進行解析判斷時,可結合這型別資料的結構特點進行分析判斷。若滿足這類資料的結構特點,則提取出來結合這類資料的結構重新儲存生成新的檔案;若不是,則判斷這部分資料是否為文件的內部控制流資料或目錄資料流,若都不是,則這部分資料為複合文件的文字資料,並將其提取出來儲存為文字檔案。

透過基於流資料修復方案修復完成的文件,會將修復出來的資料內容,按照其儲存內容的資料型別進行分類儲存。基於流資料的修復方案的流程圖,如圖6所示:

「技術視界」Microsoft文件檔案損壞,怎麼修復?

圖6 基於流資料的修復方案流程圖

基於office Open XML標準壓縮檔案

(DOCX/XLSX/PPTX)

1。

基於office Open XML標準壓縮檔案概念

基於office Open XML標準壓縮檔案本質上是一個ZIP壓縮檔案。它在結構上完全可以將其看做一個ZIP檔案,但是它同時也具備特定的檔案目錄結構。所以它與其他的ZIP檔案不同之處在於,基於office Open XML標準壓縮檔案解壓後包含的檔案目錄結構具有特定的含義。

2。

DOCX文件結構

以DOCX文件為例,DOCX有三個主要的組成部分:部件、內容型別和部件關係。針對這三個組成部分進行詳細介紹如下:

A、部件:對應於DOCX文件解壓後的一個個檔案。這些檔案都是包中的文件部件。

表2 Docx文件部件

「技術視界」Microsoft文件檔案損壞,怎麼修復?

基於office Open XML標準壓縮檔案(DOCX/XLSX/PPTX)使用單獨的檔案(xml)來表示文件中的每個部分以及附加的內容。它們需要依賴於各部件之間的正確關係保證檔案的完整和有效性,如果可以準確保持部件之間的關係,那麼檔案結構可以任意更改。以DOCX文件為例,它的open xml目錄結構如圖7所示:

「技術視界」Microsoft文件檔案損壞,怎麼修復?

圖7 DOCX文件open xml的檔案目錄結構

如圖7所示,一個文件則是由一個資料夾(或者說容器),由內部的部件各自定義屬性和資料,並相互依賴而產生的。一個檔案可能會包含這些目錄和元件,關於各個檔案目錄的關係描述如表3所示:

表3 DOCX文件open xml的檔案目錄內容描述

「技術視界」Microsoft文件檔案損壞,怎麼修復?

B、內容型別

每個文件部件都有一個特定的內容型別。一個部件的內容型別描述了這種檔案型別的內容。例如,XML部件包含了Word XML格式定義的標記,而內容型別可以用來分析文件的組成。

C、部件關係

部件關係記錄了文件部件之間的邏輯連線,構建關係的方法是:每一個關係中都有一個源一個目的,源是關係命名的部件。例如,document。xml。rels中所有的關係都將document。xml作為它們的源。每個。rels檔案都包含一個元素,每個元素都對應一個ID,包括目標部件的內容型別。

3。

基於office Open XML標準壓縮檔案修復方案

「技術視界」Microsoft文件檔案損壞,怎麼修復?

圖8 基於office Open XML標準壓縮檔案修復方案

基於ZIP結構的修復方案

基於ZIP結構的修復方案,對因ZIP結構上的錯誤或缺失損壞造成的基於office Open XML標準壓縮檔案無法正常使用的情況適用。對於該修復方案分為三步描述如下:

1)

結合ZIP檔案結構的特性,對基於office Open XML標準壓縮檔案的檔案內容進行解析。

2)

透過解析ZIP檔案特定的三部分壓縮原始檔資料區、目錄區、目錄結束標誌,對壓縮原始檔資料區檔案頭、壓縮原始檔目錄區資料結構以及壓縮原始檔目錄結束標誌內容進行解析,從而判斷出造成基於office Open XML標準壓縮檔案無法正常使用的原因。

3)

對基於office Open XML標準壓縮檔案中錯誤、缺失部分結合ZIP壓縮檔案特定的結構,如資料壓縮校驗值,資料區、目錄區內容的偏移位置和位元組長度,壓縮原始檔目錄總數等問題進行解析、判斷、修復、完善,儲存為新的檔案。

基於壓縮資料流的修復方案

該方案針對因為壓縮資料流不完整造成的檔案無法正常使用的情況,這裡需要結合表3中描述的各個檔案目錄的作用對檔案進行修復。這裡分為兩種情況:一是word資料夾下檔案內容丟失或損壞;二是其他檔案目錄下XML檔案資料丟失或損壞;

1)word資料夾下檔案內容丟失或損壞

◆首先提取出為丟失部分檔案資料,按照每個壓縮原始檔對提取出的檔案資料進行解壓縮演算法實現,對未丟失資料進行解析提取儲存到新檔案。

◆然後解析出其他未丟失或損壞的XML檔案,按照基於office Open XML標準壓縮檔案三個組成部分,重新組合出新的檔案目錄結構。

◆最後將重新組合生成的檔案目錄進行ZIP壓縮,並對壓縮後的ZIP檔案修改檔案字尾名(DOCX/XLSX/PPTX)。

2)其他檔案目錄下XML檔案資料丟失或損壞

◆首先,提取出檔案中未丟失的壓縮原始檔資料內容。

◆其次,結合圖3中描述的基於office Open XML標準壓縮檔案完整的檔案目錄結構,對缺失的XML檔案進行構造。

◆最後將重新組合生成的檔案目錄進行ZIP壓縮,並對壓縮後的ZIP檔案修改檔案字尾名(DOCX/XLSX/PPTX)。

本文主要介紹了有關Microsoft文件檔案的不同檔案格式的結構和修復方案,希望對您有一定的參考價值。

如對文中的操作、描述有任何疑問,或者有相關案件需要協助,歡迎撥打熱線電話028-85211099或直接在微信公眾號後臺給我們留言。

本期投稿:何麗萍

本期編輯:源妹

技術乾貨,線上瀏覽

效率源線上技術乾貨來啦!效率源微信公眾號定期精選近年最新最實用的技術文章30篇,內容涵蓋手機取證、資料庫取證、網路取證、Windows取證、AI影片真假鑑別等一系列電子資料取證實戰知識,歡迎查閱!

獲取途徑:

1、點選效率源公眾號選單欄【關於我們】,選擇【精選乾貨】即可進入技術盛宴。

「技術視界」Microsoft文件檔案損壞,怎麼修復?

2、進入頁面,效率源精選乾貨統統都在這裡啦。

「技術視界」Microsoft文件檔案損壞,怎麼修復?

Tags:文件扇區檔案xml資料