FAT32有效資料識別 FATTable解析

2022-06-05 08:30:10 字數 1512 閱讀 5910

在fat32中,扇區是否使用資訊儲存在 fattable 中,通過解析fattable即可知道哪些扇區已經被使用。

具體解析的步驟如下:

1. 解析fat32檔案系統頭

2. 獲取fattable的位置及大小

3. 根據fattable計算有效資料位置

1. fat檔案系統所在分割槽的第乙個扇區儲存檔案系統的基本資訊,也就是檔案系統的頭

2. 大小為乙個扇區,也就是512個位元組,以 0x55aa 結束

以下為fat32檔案系統頭部資料結構體

typedef struct  fat32_dbr;
通過winhex模板可以檢視具體的資料

fattable資料儲存的起始位置位於保留扇區後。

需要獲取fattable的位置,首先來看下分割槽資料的儲存結構:

通過解析頭部資料可以得到如下資訊:

1. 保留扇區大小   : reservedseccnt = 6206

2. fattable大小 : fatseccnt32 = 993

3. fattable數量 : fatscnt = 2

4. 扇區大小 : bytespersec = 512

通過計算可得:

fattable起始位址 = 保留扇區數 * 扇區大小 = 6206 * 512 = 3177472位元組

fattable大小 = fattable大小 * 扇區大小 = 993 * 512 = 508416位元組

跳轉至偏移位址檢視資料:

0號表項值總是「f8ffff0f」

1號表項可能被用於記錄髒標誌

1. 磁碟資料讀取的基本單位為1個扇區,通常為512位元組

2. fat32檔案系統通過簇來管理,乙個簇中包含多個扇區

3. fattable中的表項表示對應簇是否存在資料

4. fat32檔案系統中fattable表項大小為32個位元組,fat16檔案系統表項大小為16個位元組

1. fat32檔案系統的保留扇區資料為有效資料

2. 從fattable的2號表項開始記錄簇的資料有效性,0表示沒有儲存資料,非0表示儲存的資料

FAT32的協議總結

讀了fat32協議等,做了一些工作,學會不少東西,但是也有很多不懂得地方,希望明白人多來指教。在u盤進行fat32格式化後,發現除了mbr,dbr,data資料區外,還有一些資料區。就是用winhex發現的,有些資料段都沒見過,不知道是幹什麼的。就是那兩個unpartitioned space。fa...

FAT32學習筆記(一)

從最簡單的開始,如何在fat32格式的u盤裡找到乙個檔案?如果有u盤,那麼可以拿實際的u盤做試驗,這裡可以使用乙個image檔案來做試驗,效果一樣。在整個實驗過程當中,會不停的用到如下幾條命令 mount test.img mnt umount mnt hexdump c s x n x test....

FAT32的幾個問題

參考 在 中的mbr和dbr的6處,指出了當前分割槽的扇區數,占用4個位元組。每個扇區是512位元組,那麼最大容量為 2 32 1 512 2tb。fat32是以4個位元組代表1簇,但4個位元組中只用到了低28位 高4位保留 因此有2 28個簇,即268435456簇。如果每簇位4kb,那麼2684...