1、我格式化了一個分區(qū),所以這個分區(qū)中是沒有任何文件的。
2、我使用的文件大小小于1K,所以這個文件在NTFS分區(qū)的文件記錄中的數(shù)據(jù)屬性中是個常駐屬性。所以這里不涉及到運行計算的問題,應(yīng)該 最簡單的文件恢復(fù)了,以這個恢復(fù)例子的過程,可以建立一個數(shù)據(jù)恢復(fù)的大體原理了。
第一:建立一個文本文件
我格式化了我的分區(qū)G,分區(qū)類型是NTFS,使用快速格式化,正常格式化只在檢查磁盤壞道時才有用。。。之后,我在這個分區(qū)建了一個文本文件,如下圖所示:
這個文件很簡單,內(nèi)容也很少,我保存這個文件后,然后然后我們來看看這個文件大小信息,如下圖所示:
我們看到,這個文件大小是224個字節(jié),記住了哦,等下恢復(fù)這個文件的時候就可以對比一下了咯 嘻嘻 。。。
之后我就刪除了這個文件,現(xiàn)在,我們看看怎么恢復(fù)這個文件!
第二:用winhex打開分區(qū)
我們運行winhex,然后點擊菜單:工具-->打開磁盤,來打開G盤。如下圖所示:
我們可以找到$MFT這個文件,然后右擊它,然后點擊打開,之后就會打開這個文件MFT。如下面兩個圖所示:
這里為什么要這么做呢?
因為,我們只需要在MFT找到我們丟失的文件,如果我們在整個分區(qū)里搜索并且這個分區(qū)很大的話,會要很多時間的,而MFT文件就小得多了,最大也就1G左右,這是我人為弄出來的,一般系統(tǒng)是很難見到這么大的MFT文件的,除非你是做服務(wù)器,有很多磁盤碎片和小文件。。。
之后,我們可以點擊菜單中的:搜索-->查找文本。如下圖所示:
我們輸入我們想要恢復(fù)的文件名HelloWorld,而且注意,要選擇Unicode。因為MFT的文件名是Unicode形式的,之后就是查找了!
一會我們就找到了這個文件,如下圖所示:
為了能使用WinHex的顏色,我們轉(zhuǎn)到分區(qū)去看這個文件記錄!首先,我們看到這個文件記錄在MFT的偏移地址是7450H,然后我們在winhex中轉(zhuǎn)到我們分區(qū)的視圖,然后點擊MFT文件,這樣就偏移到了我們MFT文件的位置,然后選擇菜單中的:位置-->轉(zhuǎn)到偏移位置。
然后輸出7450,位置是從當(dāng)前位置開始!如下圖所示:
之后,我們就找到了這個文件記錄,如下圖所示:
我們看圖的左邊,文件記錄號是29,我們看上圖的藍(lán)色框,那個是文件記錄的標(biāo)識:FILE。那么我們怎么知道這是個被刪除的文件呢,一種辦法是直接在文件記錄頭上看,如上圖的紅色框,那2字節(jié)為文件記錄偏移16H處,0表示文件已被刪除,1表示這個文件在使用,2表示是個目錄等等。
好,現(xiàn)在我們?nèi)ゲ檎椅募涗浿械臄?shù)據(jù)屬性,這個屬性是80H開頭,好在winhex有這個顏色分類,很容易找到,如上圖的橙色框所示。
下面我們集中抽取這個數(shù)據(jù)屬性來分析,如下圖所示:
我們一個一個來分析框中的內(nèi)容表示的意思,第一個紅色的框表示這是個數(shù)據(jù)屬性,值是80H。橙色框:0表示這是個常駐屬性,即這個文件的內(nèi)容就在這個文件記錄中,如果是1就表示這是個非常駐屬性,那么我們要獲取數(shù)據(jù)就得從運行中一個一個的計算獲得,這個在下期講解!
藍(lán)色框的4個字節(jié)表示這個文件的數(shù)據(jù)大?。篍0H,折合十進(jìn)制就是224,即這個文件大小是224個自己,記得我在前面講過嗎,上面還有文件大小的截圖呢!綠色框的4個字節(jié)表示這個文件的數(shù)據(jù)的偏移位置18H,這個偏移從這個數(shù)據(jù)屬性的開始位置計算,就是上圖中的80H位置,這個位置這樣計算:75b0H + 18H = 75c8H。
然后,我們就可以由這個數(shù)據(jù)的偏移位置和大小得到這個文件的數(shù)據(jù),如紫色框表示。
最后,我們用鼠標(biāo)來選擇這些數(shù)據(jù)(選擇的數(shù)據(jù)的顏色會變的),然后點擊右鍵,選擇:編輯-->復(fù)制選項塊-->植入新文件,如下圖所示:
在這里,我們最好就選擇另外一個分區(qū),不要在要恢復(fù)的分區(qū)中保存文件,已保證我們的數(shù)據(jù)不會被覆蓋掉!
這里,我把文件保存在D盤中,也命名為HelloWorld.txt。
最后,我們來看下我們恢復(fù)的文件:
文件被恢復(fù)了!