王春蘭
DOI:10.16644/j.cnki.cn33-1094/tp.2021.11.015
摘? 要: 文件恢復(fù)對電子取證行業(yè)非常重要,而文件簽名恢復(fù)文件是一種常用的文件恢復(fù)方法。其過程是,搜索文件簽名以確定文件起始扇區(qū)號;根據(jù)文件簽名尾或大小來估算文件的結(jié)尾扇區(qū)號;把起始和結(jié)尾扇區(qū)之間的內(nèi)容復(fù)制生成一個(gè)新文件即可得到被刪文件。如果文件在數(shù)據(jù)區(qū)中是連續(xù)存放的,該恢復(fù)方法的成功率非常高。文章以FAT32文件系統(tǒng)為例,把一個(gè)JPG文件徹底刪除,再借助WinHex軟件成功地對其進(jìn)行恢復(fù)。
關(guān)鍵詞: 文件刪除; 文件恢復(fù); 文件簽名; 文件類型; 扇區(qū)
中圖分類號:TP3? ? ? ? ? 文獻(xiàn)標(biāo)識碼: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 引言
隨著計(jì)算機(jī)和電子產(chǎn)品的普及,計(jì)算機(jī)犯罪現(xiàn)象越來越多,不法分子在作案時(shí)會將犯罪“痕跡”留在計(jì)算機(jī)或移動存儲介質(zhì)中,這里的“痕跡”就是指數(shù)據(jù)。為了逃避懲罰,他們會使用各種各樣的高超“去痕”技術(shù)抹去在犯罪過程中留下的數(shù)據(jù)痕跡。這就需要電子取證人員通過數(shù)據(jù)恢復(fù)來重現(xiàn)犯罪分子所留下的作案證據(jù)[1]。如今整個(gè)社會對電子證據(jù)的重視程度不斷提升,電子取證的地位越來越重要,其中基本手段之一的數(shù)據(jù)恢復(fù)技術(shù),對收集犯罪證據(jù)有極大幫助[2]。雖然目前計(jì)算機(jī)磁盤默認(rèn)采用NTFS文件系統(tǒng),但是移動存儲介質(zhì)在計(jì)算機(jī)犯罪案件中很常見,而移動存儲介質(zhì)通常采用FAT32文件系統(tǒng),所以電子取證工作中FAT32文件系統(tǒng)中的數(shù)據(jù)恢復(fù)需求非常旺盛。
本文對FAT32文件系統(tǒng)中被徹底刪除的文件進(jìn)行恢復(fù)。采取的方法是根據(jù)文件簽名來手動恢復(fù)文件。
1 文件簽名
文件簽名即文件頭,是位于文件開頭的唯一標(biāo)識號。文件簽名標(biāo)識文件真實(shí)類型[3]。有相當(dāng)一部分文件類型的文件簽名既有開頭,又有結(jié)尾,所以很容易找到文件的起止存儲位置,從而恢復(fù)出整個(gè)文件。
以RAR壓縮文件為例,其特有的文件簽名為“52 61 72 21”字節(jié)段。也正是通過這個(gè)字節(jié)段,我們能準(zhǔn)確解讀并判斷它是RAR格式的文件。其他各種文件類型的文件簽名都有自己的數(shù)值,有的長些,有的短些,有的在文件的開頭,也有的可能在文件的中間或結(jié)尾,也就是相對于文件開始有一定的偏移,有的文件格式有文件簽名頭部和尾部,如常見的JPG圖像,其簽名頭部是FFD8,簽名尾部是FFD9。一般情況下,我們在一個(gè)文件開頭發(fā)現(xiàn)了某段簽名,就可以判斷它是什么格式的文件了[4]。
2 FAT32文件系統(tǒng)結(jié)構(gòu)與數(shù)據(jù)刪除
為了弄清楚數(shù)據(jù)恢復(fù)的思路,我們需要先明白FAT32文件系統(tǒng)的結(jié)構(gòu)以及該文件系統(tǒng)在刪除數(shù)據(jù)時(shí)的操作細(xì)節(jié)。
2.1 FAT32文件系統(tǒng)結(jié)構(gòu)
如圖1所示,F(xiàn)AT32文件系統(tǒng)由保留扇區(qū)、FAT表、DATA區(qū)組成[5]。其中保留區(qū)中所含的DBR扇區(qū)稱為引導(dǎo)扇區(qū),里面包含了文件系統(tǒng)的重要參數(shù)比如保留區(qū)的大?。ㄉ葏^(qū)數(shù)),F(xiàn)AT表的大小(扇區(qū)數(shù)),分區(qū)根目錄在DATA區(qū)中的簇號等。
FAT表有兩份,F(xiàn)AT2是FAT1的備份。FAT表可以告訴我們數(shù)據(jù)區(qū)中哪些簇是空閑的,可以被再分配。DATA區(qū)被劃分為一個(gè)個(gè)簇,用來存放文件和文件夾(目錄)的內(nèi)容。如果某個(gè)簇是用來存放文件的,則該簇里存放的文件的內(nèi)容,如果某個(gè)簇是用來存放文件夾,則該簇空間被分為一個(gè)個(gè)長度為32字節(jié)的目錄項(xiàng),目錄項(xiàng)用來描述該文件夾的子對象(子文件或子文件夾)的基本信息,如名稱、常規(guī)屬性、起始簇號等,其中名稱存放在目錄項(xiàng)的起始位置。
2.2 文件系統(tǒng)如何進(jìn)行徹底刪除
在建立文件時(shí),會在該文件的父文件夾中給該文件分配目錄項(xiàng),對該文件進(jìn)行登記,然后給該文件分配DATA區(qū)的簇,同時(shí)在FAT表中相應(yīng)簇的FAT表項(xiàng)處登記該簇已被分配,把文件內(nèi)容寫入所分配的簇中。所以建立文件時(shí)文件系統(tǒng)做了三件事:在父目錄的目錄項(xiàng)中登記,在FAT表項(xiàng)中標(biāo)記簇已分配,在簇中寫入文件內(nèi)容。
但是,在徹底刪除文件,文件系統(tǒng)只做兩件事,第一是把該文件在父文件夾中的目錄項(xiàng)的第一個(gè)字節(jié)改成E5H,代表該子對象已被刪除,第二是根據(jù)目錄項(xiàng)找到該文件的起始簇號,到FAT表中把該文件所占的所有簇的FAT表項(xiàng)都清零,表示這些簇都變成未分配狀態(tài)。為了整體讀寫速度考慮,這些簇中所存放的文件內(nèi)容并沒有做任何操作,所以這種刪除文件的操作策略,為我們做數(shù)據(jù)恢復(fù)提供了便利。
快速格式化的操作思路與徹底刪除單個(gè)文件基本一致,區(qū)別在于快速格式化時(shí),文件系統(tǒng)會對該分區(qū)的所有文件進(jìn)行徹底刪除。
3 基于文件簽名的數(shù)據(jù)恢復(fù)實(shí)踐
3.1 文件恢復(fù)前的準(zhǔn)備工作
新建一個(gè)虛擬磁盤,初始化后格式化成FAT32分區(qū)。然后在根目錄中放入一個(gè)TIKTOK.JPG文件,然后把該文件徹底刪除。下面開始用基于文件簽名的方法來恢復(fù)它。
要恢復(fù)該文件,必須知道該文件內(nèi)容的起始扇區(qū)和結(jié)束扇區(qū)。要恢復(fù)的對象是JPG文件,有文件簽名頭部FFD8和尾部FFD9,所以用WinHex打開該分區(qū),在DATA區(qū),搜索文件簽名頭部和尾部來定位文件內(nèi)容。首先要定位到DATA區(qū)起始位置。
從圖2該分區(qū)的引導(dǎo)扇區(qū)可以知道,該分區(qū)前隱藏扇區(qū)有128個(gè)扇區(qū)。而該Fat32分區(qū)的保留區(qū)有6646個(gè)扇區(qū),每個(gè)FAT表的大小為773個(gè)扇區(qū),根目錄在DATA區(qū)的2號簇(因?yàn)樘厥庠?,DATA區(qū)的簇以2開始編號),所以128+6646+773*2=8320號扇區(qū)是根目錄的起始扇區(qū)。
3.2 根據(jù)文件簽名進(jìn)行數(shù)據(jù)恢復(fù)
前面確定了DATA區(qū)起始扇區(qū)號為8320,在Winhex中跳轉(zhuǎn)到該扇區(qū),根據(jù)要恢復(fù)的文件是JPG類型,可以搜索其文件簽名頭FFD8(圖3),如圖4所示在8336號扇區(qū)的開始位置搜到了FFD8。
右鍵選取FF所在字節(jié),選擇“選塊開始”。
然后搜索JPG文件的文件簽名尾FFD9,如圖5所示在第8392號扇區(qū)找到了FFD9。
大致估算這塊數(shù)據(jù)的大小為(8392-8336+1)*512B=28KB,跟文件大小基本相符,于是,在FFD9的位置右鍵選擇“選塊結(jié)尾”,文件內(nèi)容就被全部選中,然后右鍵點(diǎn)擊編輯——復(fù)制選塊——置入新文件,給該文件命名,注意要手動輸入后綴名JPG,保存到某個(gè)位置。然后打開該文件,看到文件被成功恢復(fù),如圖6。因?yàn)槲募4嬖诟夸浀哪夸涰?xiàng)而不是文件數(shù)據(jù)存儲簇中,所以按此恢復(fù)方法只可得到文件內(nèi)容。
如果對分區(qū)進(jìn)行了快速格式化,文件系統(tǒng)也會把所有文件的FAT表的對應(yīng)位置和所在目錄的目錄項(xiàng)進(jìn)行修改,但是數(shù)據(jù)區(qū)中的文件內(nèi)容也同樣沒有進(jìn)行擦除。所以,也可以用同樣的基于文件簽名的方式進(jìn)行數(shù)據(jù)恢復(fù)。
在進(jìn)行文件恢復(fù)時(shí),如果所要恢復(fù)的文件類型沒有文件簽名尾,那就需要借助文件大小來估算文件存儲的結(jié)尾位置。比如本例中,該文件的大小為28KB,那么根據(jù)一個(gè)扇區(qū)為512B的經(jīng)驗(yàn),可以推算該文件應(yīng)該占用28KB/512B=56個(gè)扇區(qū),而根據(jù)所搜到的文件簽名頭在8336號扇區(qū),就可以知道文件內(nèi)容結(jié)尾位置應(yīng)該是8336+56=8392號扇區(qū),也可以順利恢復(fù)文件。
另外,在搜索文件簽名頭部時(shí),為了避免有其他并不是文件簽名頭的“FFD8”被誤當(dāng)作文件開始,還可以借助FFD8是否出現(xiàn)在簇的開始位置來判斷、借助FFD8和FFD9之間的數(shù)據(jù)量是否與文件大小相符合來進(jìn)行判斷。另外,如果該文件的目錄項(xiàng)沒有被新文件的目錄項(xiàng)覆蓋,還可以搜索目錄項(xiàng)來獲取起始簇號再去計(jì)算起始扇區(qū)號。如果有多個(gè)FFD9,也可以用FFD8和FFD9之間的數(shù)據(jù)量是否與文件大小相符合來進(jìn)行判斷。如果無法判斷,則可以逐個(gè)導(dǎo)出嘗試性恢復(fù)。
4 結(jié)束語
因?yàn)橄右扇藭室鈩h除犯罪證據(jù),所以在電子取證工作中,恢復(fù)數(shù)據(jù)是非常重要的,而目前很多移動存儲介質(zhì)均采用FAT32文件系統(tǒng),本文對FAT32文件系統(tǒng)中已被徹底刪除的文件進(jìn)行了恢復(fù)。根據(jù)文件簽名頭部找到該文件內(nèi)容的起始位置,然后再根據(jù)文件簽名尾部,找到文件內(nèi)容的結(jié)束位置,就可以把該文件內(nèi)容完整地恢復(fù)出來。如果要恢復(fù)的文件類型只有文件簽名頭,沒有文件簽名尾,可以根據(jù)文件的大小來估算文件內(nèi)容存放的結(jié)束位置。所以,在文件連續(xù)存放的前提下,只要文件的內(nèi)容沒有被新文件覆蓋,恢復(fù)的幾率是非常高的。有些個(gè)別的文件類型沒有文件簽名,則不能使用本文的恢復(fù)方法。
如果FAT32文件系統(tǒng)中文件存儲有碎片,則需要根據(jù)文件的結(jié)構(gòu)特征、數(shù)據(jù)的關(guān)聯(lián)來進(jìn)行恢復(fù),這種情況的文件恢復(fù)會困難很多。
參考文獻(xiàn)(References):
[1] 張明旺,侯智文.數(shù)據(jù)恢復(fù)技術(shù)在涉案計(jì)算機(jī)偵查取證中的應(yīng)用研究[J].科技創(chuàng)新導(dǎo)報(bào),2018.15(6):170-173
[2] 戴士劍,涂彥暉.數(shù)據(jù)恢復(fù)技術(shù)(經(jīng)典重現(xiàn)版)[M].電子工業(yè)出版社,2014.
[3] 張婷婷.試論計(jì)算機(jī)取證中的數(shù)據(jù)恢復(fù)技術(shù)[J].科技風(fēng),2017.5:61
[4] 胡敏,楊吉云,姜維.Windows下基于文件特征的數(shù)據(jù)恢復(fù)算法[J].計(jì)算機(jī)應(yīng)用,2011.31(2):527-528
[5] 張化軍,王恩輝,劉曉燕.FAT32文件系統(tǒng)誤刪除數(shù)據(jù)恢復(fù)[J].包頭職業(yè)技術(shù)學(xué)院學(xué)報(bào),2013.14(2):21-23,31