7個碎片的excel重組實驗

 H盤是fat32系統,簇大小8 。根目錄下有一個123.xls文件,winhex下查看文件共有7個碎片。現在刪除這個文件,再用winhex分析查找到所有碎片,提取出來,最後在重組爲一個文件。


wKioL1S7vBXhqClZAAC8jnQuL68015.jpg


wKiom1S7u32SpJlIAAIFdVJlyt0720.jpg


wKiom1S7u7vj4zOzAARUgG_Tzko272.jpg


wKiom1S7vAvxQtuQAADLiCYoFgY398.jpg

    下面是恢復過程:打開winhex,根據目錄項定位到他的文件頭扇區(過程略)。1591240號扇區 


wKiom1S7vFyS6IkZAAP1j7ktNUs667.jpg


    根據文件頭中的參數跳轉到ROOT所在扇區,查看workbook流的起始位置,爲08 00 00 00


wKiom1S7vLKhyCY6AAMHINMUrYQ533.jpg


    跳轉過去,


wKioL1S7vfbyYdHsAAHltoc_17U675.jpg


然後根據workbook流的結構關鍵字標識(比如字體,格式,樣式,調色板,SSTsheet表等等)來分析當前碎片的結束位置和下一個碎片的開始位置。

當分析到1591271扇區時,發現下一扇區明顯是另外一個複合文檔的文件頭,這說明1591271扇區就是第一個碎片的結束扇區,經過計算,這個扇區正好是198404號簇的最後一個扇區。


wKioL1S7vkzzziGkAAHg7D6Hatc984.jpg


 這樣第一個碎片就確定了,1591240---1591271 ,提取出來保存爲1.dat 。現在查找第二個碎片,我們利用下一個碎片第一個關鍵字標識距離碎片開始的字節長度爲線索來查找。期間排出了幾個錯誤的搜索結果,最後確認1591280扇區爲下一個碎片的開始扇區。


wKiom1S7vbixnFeuAAL1NGKLR9M891.jpg












    下面繼續分析,查找是碎片的結尾。通過分析搜索,在1592143扇區找到了碎片尾部,如圖:


wKioL1S7v3nTAzhFAAMmRqz-rRk771.jpg


這樣,第二個碎片就確定了,1591280---1592143。提取出來保存爲2.dat

下面查找第三個碎片的開始扇區,同樣的思路。最終在1593840扇區找到了下一個碎片的開始扇區。如圖:


wKiom1S7vyzArarPAAJyD9lOebU849.jpg


    繼續分析查找碎片的結尾,在1594191扇區找到了碎片的結束扇區,如圖:


wKiom1S7v3TzDr9oAALSkTjHUqY723.jpg


這樣,第三個碎片就確定了大小範圍,1593840---1594191 。提取出來保存爲3.dat 。繼續分析搜索第四個碎片。我就不一一貼圖了,以下是分析出的各碎片的範圍:

4.          1595128---1596183

5.          1669056---1669631

6.          1745208---1745623

7.          1761672---1762887

最後把這提取出來的7個碎片文件合併成一個excel文件:recovery.xls 。然後打開驗證

一下,如圖:


wKioL1S7wKuDeWvSAAKKNT4cu3w917.jpg


wKiom1S7wBCzRkJTAAEhgIQ1yJ4515.jpg



wKioL1S7wQ-ShEbaAAJ987bjdGI308.jpg


沒有問題,文件重組成功!

 

以上是我做的實驗,在實際的重組過程中可能會碰到一些其他問題。就不探討了。此實驗只是提供一種思路供大家參考,前提是要對workbook流的結構要有一定的瞭解。好了,就到這裏,再見!       

                             

                                                                        bsmao

                                                                        2014-1-8


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章