天天看點

《NTFS檔案系統扇區存儲探秘》——2.4 FAT32扇區尋址執行個體分析

本節書摘來自異步社群《ntfs檔案系統扇區存儲探秘》一書中的第2章,第2.4節,作者:宋群生 , 宋亞瓊著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

ntfs檔案系統扇區存儲探秘

現在以作者的1号硬碟中的h盤為例,說明對fat32檔案系統各部分扇區的尋址計算方法。

根據2.2節中的扇區号備查檔案記錄,可以讀出h盤存儲分區連結清單的扇區号。因為每一個邏輯驅動器備份兩個扇區資料,是以與h盤對應的扇區應該是第11和第12個記錄。第11個記錄是分區連結清單扇區号,讀出其值是“20964825”,第12個記錄是分區引導記錄的首扇區号。

運作“檢視硬碟扇區資料.exe”程式,将“20964825”号扇區的資料顯示在對話框中,程式的運作結果如圖2-8所示。

《NTFS檔案系統扇區存儲探秘》——2.4 FAT32扇區尋址執行個體分析

因為h盤不是第一個邏輯驅動器,是以在圖2-8所示對話框顯示的資料中,沒有主引導記錄,隻有分區連結清單。

找到位元組位移1c6h開始的4位元組,也就是位元組編号455-458,扇區資料中的位元組值是“3f 00 00 00”,換算成十進制是“63”。

這個數值是系統隐藏的扇區數,用20964825加上63,就得到分區引導記錄的首扇區号是“20964888”。

運作“檢視硬碟扇區資料.exe”程式,将“20964888”号扇區的資料顯示在對話框中,程式的運作結果如圖2-9所示。

《NTFS檔案系統扇區存儲探秘》——2.4 FAT32扇區尋址執行個體分析

fat32檔案系統的分區引導記錄有兩個相同的拷貝,每個拷貝占用6個扇區。是以将扇區号20964888加上6,就得到第二份拷貝的首扇區号是“20964894”。

運作“檢視硬碟扇區資料.exe”程式,将“20964894”号扇區的資料顯示在對話框中,程式的運作結果如圖2-10所示。

将圖2-9所示的對話框與圖2-10所示的對話框的内容比較一下,可以發現它們完全一樣。

現在計算第一fat表的首扇區位址。前面曾講過,fat32檔案系統的分區引導記錄一共保留了32個扇區。是以用分區引導記錄的首扇區号加上32,就得到第一fat表的首扇區位址,計算方法是20964888+32=20964920。

《NTFS檔案系統扇區存儲探秘》——2.4 FAT32扇區尋址執行個體分析

運作“檢視硬碟扇區資料.exe”程式,将“20964920”号扇區的資料顯示在對話框中,程式的運作結果如圖2-11所示。

《NTFS檔案系統扇區存儲探秘》——2.4 FAT32扇區尋址執行個體分析

在圖2-11所示的對話框顯示的資料中,前兩個位元組的值是“f8 ff”,這是fat表的首扇區标志,不管是fat16檔案系統,還是fat32檔案系統,都具有這種扇區特征。

要繼續計算第二fat表的首扇區位址,首先必須根據某一個字段值計算出每個fat表占用的扇區數。

參考第1章中表1-3的内容,知道在fat32檔案系統的bpb表中,每個fat表占用的扇區數,記錄在分區引導記錄扇區中的第37-40的4位元組中。

在圖2-9或圖2-10中,讀出該字段的值是“0d 27 00 00”,十六進制是“270dh”,十進制是“9997”。于是就得到第二fat表首扇區位址的計算方法是20964920+9997=20974917。

運作“檢視硬碟扇區資料.exe”程式,将“20974917”号扇區的資料顯示在對話框中,程式的運作結果如圖2-12所示。

《NTFS檔案系統扇區存儲探秘》——2.4 FAT32扇區尋址執行個體分析

将圖2-11所示的對話框與圖2-12所示的對話框中顯示的資料比較一下,可以發現它們完全相同。

因為fat32檔案系統沒有fdt表,是以找到第二fat表以後,最後查找的就是資料區data了。用第二fat表的首扇區号,加上每個fat表占用的扇區數,就得到資料區的首扇區位址。計算方法是20974917+9997=20984914。

運作“檢視硬碟扇區資料.exe”程式,将“20984914”号扇區的資料顯示在對話框中。為了驗證該扇區是data的首扇區,仍然采用以前的方法,将其前一個扇區的資料并列顯示出來,進行比較判斷。程式的運作結果如圖2-13所示。

如圖2-13所示,左邊對話框顯示的是前一個扇區的資料,全部位元組都是0,由此可以驗證計算結果是正确的。

《NTFS檔案系統扇區存儲探秘》——2.4 FAT32扇區尋址執行個體分析

前面曾講過,fat32檔案系統将檔案目錄登記項作為資料對待,也存儲在資料區中,存儲格式與fat16基本相同。現在将圖2-13右邊對話框中的資料,用字元方式顯示出來驗證一下。為了使字元顯示的效果好一些,可以運作16位程式readsf.exe,程式運作後的顯示界面如圖2-14所示。

《NTFS檔案系統扇區存儲探秘》——2.4 FAT32扇區尋址執行個體分析