王春蘭



DOI:10.16644/j.cnki.cn33-1094/tp.2021.11.015
摘? 要: 文件恢復對電子取證行業非常重要,而文件簽名恢復文件是一種常用的文件恢復方法。其過程是,搜索文件簽名以確定文件起始扇區號;根據文件簽名尾或大小來估算文件的結尾扇區號;把起始和結尾扇區之間的內容復制生成一個新文件即可得到被刪文件。如果文件在數據區中是連續存放的,該恢復方法的成功率非常高。文章以FAT32文件系統為例,把一個JPG文件徹底刪除,再借助WinHex軟件成功地對其進行恢復。
關鍵詞: 文件刪除; 文件恢復; 文件簽名; 文件類型; 扇區
中圖分類號:TP3? ? ? ? ? 文獻標識碼:A? ? 文章編號:1006-8228(2021)11-60-03
Principle and practice of file signature based file recovery technology
Wang Chunlan
(School of Evidence Science, Gansu University of Political Science and Law, Lanzhou, Gansu 730070, China)
Abstract: File recovery is very important to the electronic forensics industry, and file signature based file recovery is a common file recovery method. Its process is to search the file signature to determine the file starting sector number; Estimate the end sector number of the file according to the signature tail or size of the file; The deleted file can be obtained by copying the contents between the start and end sectors to generate a new file. If the file is stored in the successive sectors, the success rate of this recovery method is very high. In this paper, taking FAT32 file system as an example, a JPG file is completely deleted, and then be successfully restored with the help of WinHex software.
Key words: file deleting; file recovery; file signature; file type; sector
0 引言
隨著計算機和電子產品的普及,計算機犯罪現象越來越多,不法分子在作案時會將犯罪“痕跡”留在計算機或移動存儲介質中,這里的“痕跡”就是指數據。為了逃避懲罰,他們會使用各種各樣的高超“去痕”技術抹去在犯罪過程中留下的數據痕跡。這就需要電子取證人員通過數據恢復來重現犯罪分子所留下的作案證據[1]。如今整個社會對電子證據的重視程度不斷提升,電子取證的地位越來越重要,其中基本手段之一的數據恢復技術,對收集犯罪證據有極大幫助[2]。雖然目前計算機磁盤默認采用NTFS文件系統,但是移動存儲介質在計算機犯罪案件中很常見,而移動存儲介質通常采用FAT32文件系統,所以電子取證工作中FAT32文件系統中的數據恢復需求非常旺盛。
本文對FAT32文件系統中被徹底刪除的文件進行恢復。采取的方法是根據文件簽名來手動恢復文件。
1 文件簽名
文件簽名即文件頭,是位于文件開頭的唯一標識號。文件簽名標識文件真實類型[3]。有相當一部分文件類型的文件簽名既有開頭,又有結尾,所以很容易找到文件的起止存儲位置,從而恢復出整個文件。
以RAR壓縮文件為例,其特有的文件簽名為“52 61 72 21”字節段。也正是通過這個字節段,我們能準確解讀并判斷它是RAR格式的文件。其他各種文件類型的文件簽名都有自己的數值,有的長些,有的短些,有的在文件的開頭,也有的可能在文件的中間或結尾,也就是相對于文件開始有一定的偏移,有的文件格式有文件簽名頭部和尾部,如常見的JPG圖像,其簽名頭部是FFD8,簽名尾部是FFD9。一般情況下,我們在一個文件開頭發現了某段簽名,就可以判斷它是什么格式的文件了[4]。
2 FAT32文件系統結構與數據刪除
為了弄清楚數據恢復的思路,我們需要先明白FAT32文件系統的結構以及該文件系統在刪除數據時的操作細節。
2.1 FAT32文件系統結構
如圖1所示,FAT32文件系統由保留扇區、FAT表、DATA區組成[5]。其中保留區中所含的DBR扇區稱為引導扇區,里面包含了文件系統的重要參數比如保留區的大?。ㄉ葏^數),FAT表的大?。ㄉ葏^數),分區根目錄在DATA區中的簇號等。
FAT表有兩份,FAT2是FAT1的備份。FAT表可以告訴我們數據區中哪些簇是空閑的,可以被再分配。DATA區被劃分為一個個簇,用來存放文件和文件夾(目錄)的內容。如果某個簇是用來存放文件的,則該簇里存放的文件的內容,如果某個簇是用來存放文件夾,則該簇空間被分為一個個長度為32字節的目錄項,目錄項用來描述該文件夾的子對象(子文件或子文件夾)的基本信息,如名稱、常規屬性、起始簇號等,其中名稱存放在目錄項的起始位置。
2.2 文件系統如何進行徹底刪除
在建立文件時,會在該文件的父文件夾中給該文件分配目錄項,對該文件進行登記,然后給該文件分配DATA區的簇,同時在FAT表中相應簇的FAT表項處登記該簇已被分配,把文件內容寫入所分配的簇中。所以建立文件時文件系統做了三件事:在父目錄的目錄項中登記,在FAT表項中標記簇已分配,在簇中寫入文件內容。
但是,在徹底刪除文件,文件系統只做兩件事,第一是把該文件在父文件夾中的目錄項的第一個字節改成E5H,代表該子對象已被刪除,第二是根據目錄項找到該文件的起始簇號,到FAT表中把該文件所占的所有簇的FAT表項都清零,表示這些簇都變成未分配狀態。為了整體讀寫速度考慮,這些簇中所存放的文件內容并沒有做任何操作,所以這種刪除文件的操作策略,為我們做數據恢復提供了便利。
快速格式化的操作思路與徹底刪除單個文件基本一致,區別在于快速格式化時,文件系統會對該分區的所有文件進行徹底刪除。
3 基于文件簽名的數據恢復實踐
3.1 文件恢復前的準備工作
新建一個虛擬磁盤,初始化后格式化成FAT32分區。然后在根目錄中放入一個TIKTOK.JPG文件,然后把該文件徹底刪除。下面開始用基于文件簽名的方法來恢復它。
要恢復該文件,必須知道該文件內容的起始扇區和結束扇區。要恢復的對象是JPG文件,有文件簽名頭部FFD8和尾部FFD9,所以用WinHex打開該分區,在DATA區,搜索文件簽名頭部和尾部來定位文件內容。首先要定位到DATA區起始位置。
從圖2該分區的引導扇區可以知道,該分區前隱藏扇區有128個扇區。而該Fat32分區的保留區有6646個扇區,每個FAT表的大小為773個扇區,根目錄在DATA區的2號簇(因為特殊原因,DATA區的簇以2開始編號),所以128+6646+773*2=8320號扇區是根目錄的起始扇區。
3.2 根據文件簽名進行數據恢復
前面確定了DATA區起始扇區號為8320,在Winhex中跳轉到該扇區,根據要恢復的文件是JPG類型,可以搜索其文件簽名頭FFD8(圖3),如圖4所示在8336號扇區的開始位置搜到了FFD8。
右鍵選取FF所在字節,選擇“選塊開始”。
然后搜索JPG文件的文件簽名尾FFD9,如圖5所示在第8392號扇區找到了FFD9。
大致估算這塊數據的大小為(8392-8336+1)*512B=28KB,跟文件大小基本相符,于是,在FFD9的位置右鍵選擇“選塊結尾”,文件內容就被全部選中,然后右鍵點擊編輯——復制選塊——置入新文件,給該文件命名,注意要手動輸入后綴名JPG,保存到某個位置。然后打開該文件,看到文件被成功恢復,如圖6。因為文件名保存在根目錄的目錄項而不是文件數據存儲簇中,所以按此恢復方法只可得到文件內容。
如果對分區進行了快速格式化,文件系統也會把所有文件的FAT表的對應位置和所在目錄的目錄項進行修改,但是數據區中的文件內容也同樣沒有進行擦除。所以,也可以用同樣的基于文件簽名的方式進行數據恢復。
在進行文件恢復時,如果所要恢復的文件類型沒有文件簽名尾,那就需要借助文件大小來估算文件存儲的結尾位置。比如本例中,該文件的大小為28KB,那么根據一個扇區為512B的經驗,可以推算該文件應該占用28KB/512B=56個扇區,而根據所搜到的文件簽名頭在8336號扇區,就可以知道文件內容結尾位置應該是8336+56=8392號扇區,也可以順利恢復文件。
另外,在搜索文件簽名頭部時,為了避免有其他并不是文件簽名頭的“FFD8”被誤當作文件開始,還可以借助FFD8是否出現在簇的開始位置來判斷、借助FFD8和FFD9之間的數據量是否與文件大小相符合來進行判斷。另外,如果該文件的目錄項沒有被新文件的目錄項覆蓋,還可以搜索目錄項來獲取起始簇號再去計算起始扇區號。如果有多個FFD9,也可以用FFD8和FFD9之間的數據量是否與文件大小相符合來進行判斷。如果無法判斷,則可以逐個導出嘗試性恢復。
4 結束語
因為嫌疑人會故意刪除犯罪證據,所以在電子取證工作中,恢復數據是非常重要的,而目前很多移動存儲介質均采用FAT32文件系統,本文對FAT32文件系統中已被徹底刪除的文件進行了恢復。根據文件簽名頭部找到該文件內容的起始位置,然后再根據文件簽名尾部,找到文件內容的結束位置,就可以把該文件內容完整地恢復出來。如果要恢復的文件類型只有文件簽名頭,沒有文件簽名尾,可以根據文件的大小來估算文件內容存放的結束位置。所以,在文件連續存放的前提下,只要文件的內容沒有被新文件覆蓋,恢復的幾率是非常高的。有些個別的文件類型沒有文件簽名,則不能使用本文的恢復方法。
如果FAT32文件系統中文件存儲有碎片,則需要根據文件的結構特征、數據的關聯來進行恢復,這種情況的文件恢復會困難很多。
參考文獻(References):
[1] 張明旺,侯智文.數據恢復技術在涉案計算機偵查取證中的應用研究[J].科技創新導報,2018.15(6):170-173
[2] 戴士劍,涂彥暉.數據恢復技術(經典重現版)[M].電子工業出版社,2014.
[3] 張婷婷.試論計算機取證中的數據恢復技術[J].科技風,2017.5:61
[4] 胡敏,楊吉云,姜維.Windows下基于文件特征的數據恢復算法[J].計算機應用,2011.31(2):527-528
[5] 張化軍,王恩輝,劉曉燕.FAT32文件系統誤刪除數據恢復[J].包頭職業技術學院學報,2013.14(2):21-23,31