1. 程式人生 > >軟體安全學習筆記(5):FAT32檔案系統與資料恢復

軟體安全學習筆記(5):FAT32檔案系統與資料恢復

一、FAT32檔案系統結構

1、引導扇區:描述分割槽大小、簇的大小、FAT表個數與大小、分割槽載入程式等。

2、FAT(檔案分配表)FAT1+FAT2:記錄資料儲存區每一個簇的使用情況,形成每個檔案的簇連結串列

3、資料儲存區:

儲存兩類資料:目錄項、檔案資料

二、幾個概念

1、簇:檔案系統將磁碟以一定數量的扇區為單位進行劃分,這樣的單位稱為簇。是檔案空間分配的最小單位。

2、FAT表:微軟在FAT檔案系統中用於磁碟資料索引和定位引進的一種單向鏈式結構。

FAT表中的表項個數=簇的個數,用來記錄每一個簇的佔用情況。若為0,則表示對應簇空閒。

FAT32的每個表項32位,4個位元組。可表達的最大簇號為4G

3、簇鏈:一個檔案所佔用簇的序號形成的單向連結串列。

實現方法:在檔案佔用簇的對應簇號的FAT項,填寫下一簇的簇號。如果為最後一簇,輸入"FFFFFF0F".

三、檔案的儲存

1、儲存過程:

根據檔案大小在FAT表中定位足夠的空閒簇——>在資料儲存區建立目錄項——>在FAT中構建簇連結串列——>在對應分配的簇中寫入資料。

2、目錄項的含義:

檔名+字尾名+檔案屬性+保留+檔案建立時間+日期+訪問日期+首簇高16位+更新日期及時間+首簇低16位+檔案大小

四、檔案刪除

目錄項變化:首簇高位清零、檔名首位修改為E5

簇連結串列變化:全部清零

檔案內容:無變化

五、檔案恢復

1、還原檔名首位:

長檔名:逆向定位完整檔名

2、確定高位並還原

參考相鄰目錄項首簇高位。

從0往上試探,看首簇指向內容是否為檔案內容

3、修復FAT表簇鏈

通過檔案大小計算所佔簇數目

假設連續儲存,進行簇鏈修補。末項用0fffffff。