軟體安全學習筆記(5):FAT32檔案系統與資料恢復
阿新 • • 發佈:2019-02-10
一、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。