U盤FAT系統手工恢復二進制文檔碎片經典案例分析
U盤的文件系統一般爲FAT16或者FAT32(目前主要爲後者),文件在刪除或者中病毒後會把文件在FAT表中佔相應的簇位清空,並將其目錄項的首個字節改爲E5,如果文件不連續,比如經常在U盤內編輯更新的文件就會產生碎片,這時針對某個重要的文件,比如說文檔就不能利用軟件來恢復,在FAT表被清零的情況下軟件的恢復原理是根據文件的目錄項裏記錄的文件超簇跟大小,按文件連續存儲的方式來恢復的,現在,就給大家介紹如何用WINHEX手工來恢復二進制文檔.
此案例針對已經對二進制文檔有一定了解的數據恢復人員,如果不明白也可以再去學習下論壇裏的相關資料,華山劍客在這方面給出了很充分的資料,大家搜下就有了.
下面以恢復”實踐報告正文.DOC”爲例,故障現象爲客戶誤刪除了此文件,用軟件可以把文件找回來,但打開出錯.
分析故障,初步判斷是文檔存在碎片,首先要尋找正確的文件頭,如何判斷呢?可看到在WINHEX裏面有三個此文件,依次進行分析:
先判斷第一個文件:
跳轉至其目錄項,可知其大小爲(00142E00/H)1322496字節/512=2583扇區=1291.5K,跟WINHEX看到的大小是一致的,再跳到其文件頭,用WIHNEX的列出文件族數功能就可以方便的查看了:
可以看到這是一個文檔的文件頭,在偏移2C-2F/H的位置可以知道文件有1個SAT配置表,這個跟目錄項中文件大小爲1.3M大小不符合,因此這個文件頭不對.
接下來跳到第二個文件,同樣跳到其目錄項,分析其文件大小也爲1.3M,然後跳到文件頭,
可以看到其配置表總數爲(15/H)21個,那麼根據配置表總數估算文檔大小爲(一個配置表大概爲60K的文檔):21*60=1260K,符合文檔大小,初步判斷此文件頭是正確的.
接下來再判斷第三個文件:
可以看到這個文件的文件頭明顯不是二進制文檔的文件頭,因此排除這個.
通過以上判斷可以初步確定第二個文檔的文件頭是正確的,因此接下來的手工恢復就針對此文件頭來恢復.
由DBR偏移OD的位置可知一個簇由8個扇區構成,在WINHEX列出的簇中查看前幾個族,
發現第二個簇後很多簇全部爲0扇區,接下往下看,分析發現接下來的簇都不是文檔的內容,此該文檔的FAT表應該是全部被清空了,爲了證實這一點,我們跳到70815號簇,
可以看到從70815號簇開始,FAT表都沒有被佔用,因此斷定此文件是不連續存儲的且被刪除了.
再跳到第二個文檔的文件頭,此扇區在U盤的581276號扇區
可以看到,此文檔的最後一個配置表在偏移9C-9F/H的位置,指向第2582個扇區(即表示文檔中的第2582個扇區爲文檔的最後一個配置表),而在偏移30-33/H位置則爲ROOT目錄的位置,指向2583個扇區,即最後一個配置表的下一個扇區即爲ROOT目錄,可以知道ROOT目錄所在的扇區是文檔的最後幾個扇區之一,有了這些信息,我們就可以來搜尋文檔的結尾部分(或者說最後一個簇).
在配置表中,FDFFFFFF表示此扇區位置爲一個配置表,一個配置表可以記錄128個扇區,那麼最後一個配置表的偏移位置就可以這樣計算:
2581/128=20…..21,那麼在扇區中第21個配置表的偏移爲:21*4=84,在搜索時我們就可以這樣設置,以文檔頭爲搜索起點,向下在偏移扇區512-84搜索FDFFFFFF,具體設置如下圖:
搜索得到如下結果:
比較幸運,全盤只找到一個符合此條件的,我們來分析這個扇區,首先很明顯,這是一個文檔的配置表,從偏移58-5A/H的值:00000A17/H=2583可以看出,前一個FDFFFFFF所在的扇區應該是2582,剛纔我們所要找的最後一個配置表的位置也正是在2582扇區,更進一步覈對,去到搜索到的扇區的上一個扇區,內容很明顯是連續的,他的第一個配置表的位置在偏移04-07/H,它的前兩個扇區的值爲00000A00/H=2560,那麼第一個配置表就應該在2560+2=2562扇區,
我們再跳回到文件頭,看到它的第一個扇區配置表,
剛好第一個配置表指向的位置也爲2561+1=2562,說明這個是文檔的正確的文檔結束部分(最後一個簇).
我們跳到此扇區所在的簇號的第一個扇區,再往跳幾個簇,發現在文檔內容很像是連續的,因爲我們大膽的推斷,文檔的後面部分作爲一個碎片,並且這個碎片佔了文檔的很大一部分內容,首先,我們假設此文檔有兩個碎片,一個爲文檔頭所在的扇區部分,另一部分爲文檔尾的部分,此扇區在U盤中爲2970899號扇區.
此扇區明顯爲文檔的結束扇區,我們現在跳到文檔的目錄項
可知其扇區大小爲:1324544/512=2587個扇區;
現在結果出來了:
1號碎片: 581276-581283號扇區,爲文檔0-7號扇區;
2號碎片: 2968321-2970899號扇區,爲文檔的8-2586號扇區;
驗證,現在跳到U盤的2968321號扇區,可以看到以下內容
此扇區內容跟1號碎片的最後一個扇區(如下圖)相比
可以發現,兩者內容相連性很高,即說明這兩部分碎片是相連的,也就在說剛纔推斷碎片爲2個的推斷很可能是正確的
OK了,現在把這兩部分複製到一個新文件,新建一個大小爲等於或者略大於2587扇區大小的新文件,把文檔的兩個碎片複製到相應位置,保存爲DOC後綴,打開,OK,文件完整恢復了
文檔完恢復!!!
由於我剛開通博客,上傳圖片有大小限制,我也懶得改圖片大小了,大家如果感興趣的話直接去中國硬盤基地看我發的帖子:http://bbs.intohard.com/thread-73455-1-1.html
作者:abian(轉載請註明出處!)
qq: 1533701227,歡迎交流數據恢複相關問題!