王曉東 山東信息職業技術學院電子與通信系 楊梅 濰坊中學
隨著信息技術的應用,數據的安全性問題越來越凸顯?,F代人在使用計算機時用得最多的操作系統是Windows,該系統有FAT32和NTFS兩種文件系統。通常我們在對數據誤刪除后,使用數據恢復軟件恢復后的效果不好,原因是這些數據文件是以碎片的形式存儲的。只有找到文件的碎片并重組碎片,才能真正恢復文件。
文件在存儲時如果占用的簇空間是連續的,就不會有碎片。反之,如果占用的簇空間是離散的,簇之間插入了其他的文件內容,該文件的存儲就是碎片文件。
文件碎片的產生與操作系統采用的分配策略有關,Windows操作系統采用三種分配策略。
(1)第一可用分配策略
如果一個文件占用多個簇空間,當為它分配完一個可用簇繼續分配時,操作系統會回到整個數據區的開始處為文件匹配可用簇,這種策略比較容易出現文件碎片。
例如一個文件要占用3個簇空間,假設數據區前16個簇中1-10、13號簇已經被占用,14號簇開始往后都空閑,系統給文件的分配策略為:系統從數據區的第一個簇開始搜索空閑簇,找到11號空閑簇分配給文件,系統又回到1號簇開始搜索空閑簇,正好此時8號簇的內容被刪除,系統就會把8號簇作為第一個未使用的簇分配給文件。
圖1 第一可用分配策略
(2)下一分配策略
為文件分配了11號簇后,操作系統不會回到數據區的開始處搜索,而是繼續向后搜索空閑簇。對于上面的例子,該策略分配后的結果是11、12、14。
(3)最佳分配策略
操作系統在搜索簇時,盡可能找到一整塊連續的簇來存儲文件,這樣不容易產生文件碎片,如果沒有連續的簇可分配,再使用其他分配策略,該策略分配后的結果是14、15、16。
(1)文件分配時產生
無論采用哪種文件分配策略,文件在存儲時都會產生碎片。尤其是前兩種分配策略最容易產生,當前常用的Windows7、Windows10操作系統都是采用第二種分配策略。
(2)文件被編輯時產生
文件本身在最初創建好后是連續存放的,但是隨著使用,需要經常對它進行編輯,也就意味著要反復的給它分配和釋放空閑簇,不斷的存刪的過程很容易產生文件碎片。
文件被刪除后,文件的目錄項被標記為未使用狀態,仍然可以從目錄項中找到文件的起始簇號以及文件的大小。體現文件存儲情況的FAT表簇鏈也會被清空,這樣就無法獲取除首簇外其它簇所占用的情況。
恢復文件思路:如果文件存儲時有碎片,提取出來的文件會不正確,要恢復文件還需知道簇的占用情況,但此時簇鏈已經被清空??紤]到文件被刪除后,雖然文件占用的FAT表項被清空,但該文件周圍其他文件的占用的表項號沒有清空,根據FAT文件系統數據區是由FAT表來管理的,FAT表中每一個表項號都對應于一個簇號,我們可以得到恢復思路,就是從該文件占用的第一簇簇號對用的FAT表項號開始,搜索未分配狀態的FAT表項號,根據文件大小計算出要搜索的表項號數量,然后到數據區找到對應的簇號,從而正確提取出文件。
舉例說明恢復方法。文件“zhongguo.doc”是一個有碎片的文件,現被徹底刪除,文件有三個碎片?;謴偷牟僮魅缦拢捍蜷_winhex軟件(Windows系統下十六進制查看器),根據文件名zhongguo定位到文件的目錄項,從目錄項中的讀出文件的起始簇號39,讀出文件的大小算出占用的簇數是11。因為文件被刪除后FAT表簇鏈被清空,從39號表項開始搜索11個空白表項。文件的存儲單元是簇,實際存儲最小單位為扇區,提取文件內容時還要轉化為扇區操作,公式為:簇起始扇區號=保留扇區+FAT表大小扇區*FAT表個數+(該簇號-2)*該簇扇區數。最后根據提取的碎片內容重組文件。
文件被刪除后,文件的的MFT記錄中標志位改變為未使用狀態00(偏移16、17處),目錄中文件的索引項被清除。但是最關鍵的是,存放該文件的文件名的30屬性和存放文件起始簇號、大小的80屬性沒有被清空。
恢復文件的思路:如果文件有碎片,得出文件名字的十六進制形式(NTFS文件系統使用的是UNIDODE碼),根據此值,定位到文件的MFT記錄,分析80屬性的數據運行,計算出每塊碎片文件的起始LCN號及大小,計算時注意,從第二塊碎片文件開始,它的起始LCN號是相對于前一塊碎片文件的起始LCN號的偏移量進行計算的,最后將提取出的碎片文件重組。
舉例說明恢復方法。文件“gongyuan.jpg”是一個有碎片的文件,現被徹底刪除?;謴偷牟僮魅缦拢菏褂脀inhex先得出文件名的unicode碼67006F006E0067007900750061006E00,依據該碼搜索到文件的MFT記錄,在文件的MFT記錄中定位到80屬性,該屬性是非常駐屬性,它的數據運行中存儲的是文件在數據區中簇的占用情況,數據運行為316A70FD01 2154AAD2 3101602B01(見圖2)。根據數據運行計算三塊碎片文件的起始簇號和塊大小。注意碎片文件的起始簇號是相對于前一塊碎片的起始簇號而言的。
表1 碎片文件的存儲分布
圖2 文件的MFT記錄
本文針對windows系統下具有碎片的文件被刪除,分別給出了在FAT32和NTFS文件系統下的恢復的方法,在實踐中具有良好效果。