計(jì)算機(jī)數(shù)據(jù)恢復(fù)技術(shù) 課件 第3章 Windows系統(tǒng)的數(shù)據(jù)恢復(fù)技術(shù)_第1頁(yè)
計(jì)算機(jī)數(shù)據(jù)恢復(fù)技術(shù) 課件 第3章 Windows系統(tǒng)的數(shù)據(jù)恢復(fù)技術(shù)_第2頁(yè)
計(jì)算機(jī)數(shù)據(jù)恢復(fù)技術(shù) 課件 第3章 Windows系統(tǒng)的數(shù)據(jù)恢復(fù)技術(shù)_第3頁(yè)
計(jì)算機(jī)數(shù)據(jù)恢復(fù)技術(shù) 課件 第3章 Windows系統(tǒng)的數(shù)據(jù)恢復(fù)技術(shù)_第4頁(yè)
計(jì)算機(jī)數(shù)據(jù)恢復(fù)技術(shù) 課件 第3章 Windows系統(tǒng)的數(shù)據(jù)恢復(fù)技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩341頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第3章Windows系統(tǒng)的數(shù)據(jù)恢復(fù)技術(shù)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析1.FAT32文件系統(tǒng)的結(jié)構(gòu)FAT32文件系統(tǒng)是從Windows95系統(tǒng)的OSR2版本開(kāi)始使用的。它能夠支持容量大于32

MB且小于32

GB的分區(qū)。雖然第三方的格式化程序可以把容量超過(guò)32

GB的分區(qū)格式化為FAT32文件系統(tǒng),但微軟系統(tǒng)不允許將容量大于32

GB的分區(qū)格式化為FAT32文件系統(tǒng)。圖3-1FAT32文件系統(tǒng)的結(jié)構(gòu)

FAT32文件系統(tǒng)由DBR及其保留扇區(qū)、FAT1、FAT2、DATA區(qū)4個(gè)部分組成,如圖3-1所示。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析1.FAT32文件系統(tǒng)的結(jié)構(gòu)

FAT32文件系統(tǒng)這4部分是在分區(qū)被格式化時(shí)創(chuàng)建出來(lái)的。它們的含義如下。DBR及其保留扇區(qū):DOS引導(dǎo)記錄(DosBootRecord,DBR)又稱(chēng)操作系統(tǒng)引導(dǎo)記錄,而在DBR之后往往有一些保留扇區(qū)。

FAT1:FAT32文件系統(tǒng)一般有兩個(gè)文件分配表(FileAllocationTable,F(xiàn)AT),F(xiàn)AT1是FAT32文件系統(tǒng)的第一個(gè)文件分配表,也是主FAT。FAT2:FAT2是FAT32文件系統(tǒng)的第二個(gè)文件分配表,也就是FAT1的備份,又稱(chēng)備份FAT。DATA區(qū):也就是數(shù)據(jù)區(qū),是FAT32文件系統(tǒng)的主要區(qū)域,其中也包含目錄區(qū)。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

2.FAT32文件系統(tǒng)的DBR分析

FAT32文件系統(tǒng)的DBR與FAT16文件系統(tǒng)的DBR很類(lèi)似,也由5部分組成,分別為跳轉(zhuǎn)指令、OEM代號(hào)、BPB(BIOSParameterBlock)、引導(dǎo)程序和結(jié)束標(biāo)志。如圖3-2所示即為一個(gè)完整的FAT32文件系統(tǒng)的DBR。圖3-2一個(gè)完整的FAT32文件系統(tǒng)的DBR3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析1)跳轉(zhuǎn)指令

跳轉(zhuǎn)指令占用2個(gè)字節(jié)。它將程序執(zhí)行流程跳轉(zhuǎn)到引導(dǎo)程序處,比如當(dāng)前DBR中的“EB58”,就代表了匯編語(yǔ)言的“JMP58”。因?yàn)橛?jì)算跳轉(zhuǎn)目標(biāo)地址是以該指令的下一個(gè)字節(jié)為基準(zhǔn),所以實(shí)際執(zhí)行的下一條指令應(yīng)該位于5A。跳轉(zhuǎn)指令的下一條指令是一條空指令NOP(90H)。

2)OEM代號(hào)OEM代號(hào)占用8個(gè)字節(jié)。OEM代號(hào)由創(chuàng)建該文件系統(tǒng)的OEM廠(chǎng)商設(shè)定。當(dāng)前DBR中的OEM代號(hào)為“MSDOS5.0”,說(shuō)明此FAT32文件系統(tǒng)是由Windows2000以上的操作系統(tǒng)格式化創(chuàng)建的。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3)BPBFAT32文件系統(tǒng)的BPB從DBR的第12個(gè)字節(jié)(0BH)開(kāi)始,占用79個(gè)字節(jié),記錄了有關(guān)該文件系統(tǒng)的重要信息。FAT32文件系統(tǒng)的BPB各字段的含義如表3-1所示。偏移地址字段長(zhǎng)度/個(gè)字節(jié)含

義偏移地址字段長(zhǎng)度/個(gè)字節(jié)含

義0BH2每扇區(qū)字節(jié)數(shù)28H2擴(kuò)展標(biāo)志0DH1每簇扇區(qū)數(shù)2AH2版本0EH2DBR保留扇區(qū)數(shù)2CH4根目錄首簇號(hào)10H1FAT個(gè)數(shù)30H2文件系統(tǒng)信息扇區(qū)號(hào)11H2未用32H2DBR備份扇區(qū)號(hào)13H2未用34H12保留不用15H1介質(zhì)描述符40H1BIOS驅(qū)動(dòng)器號(hào)16H2未用41H1保留不用18H2每磁道扇區(qū)數(shù)42H1擴(kuò)展啟動(dòng)標(biāo)志1AH2磁頭數(shù)43H4卷序列號(hào)1CH4隱含扇區(qū)數(shù)47H11卷標(biāo)20H4分區(qū)的扇區(qū)總數(shù)52H8文件系統(tǒng)類(lèi)型24H4FAT扇區(qū)數(shù)

表3-1FAT32文件系統(tǒng)的BPB各字段的含義3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3)BPB

BPB也可以使用WinHex中的DBR模板來(lái)查看。WinHex的模板管理器提供了FAT32文件系統(tǒng)的DBR模板。打開(kāi)WinHex的“模板管理器”對(duì)話(huà)框,選擇FAT32文件系統(tǒng)的DBR模板即可,如圖3-3所示。圖3-3“模板管理器”對(duì)話(huà)框3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3)BPB

單擊“應(yīng)用”按鈕后,就可以查看FAT32文件系統(tǒng)的DBR模板信息,如圖3-4所示。圖3-4FAT32文件系統(tǒng)的DBR模板3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3)BPB

(1)0BH~0CH:每扇區(qū)字節(jié)數(shù),以記錄每個(gè)邏輯扇區(qū)的大小。在一般情況下,每個(gè)扇區(qū)有512個(gè)字節(jié)。但每個(gè)扇區(qū)字節(jié)數(shù)并不是固定值,可以由程序定義,其合法值包括512、1024、2048和4096等。

(2)0DH~0DH:每簇扇區(qū)數(shù),以記錄FAT32文件系統(tǒng)的簇的大小,即記錄每個(gè)簇中有多少個(gè)扇區(qū)。

FAT32文件系統(tǒng)最高能支持128個(gè)扇區(qū)的簇。在FAT32文件系統(tǒng)中,所有的簇均從2開(kāi)始進(jìn)行編號(hào),每個(gè)簇?fù)碛幸粋€(gè)自己的地址編號(hào),且所有的簇都位于數(shù)據(jù)區(qū)內(nèi),在數(shù)據(jù)區(qū)之前是沒(méi)有簇的。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3)BPB

(3)0EH~0FH:DBR保留扇區(qū)數(shù)。DBR保留扇區(qū)數(shù)是指DBR本身占用的扇區(qū)數(shù)及其后保留扇區(qū)數(shù)的總和,也就是DBR到FATl之間的扇區(qū)總數(shù),或者說(shuō)是FATl的開(kāi)始扇區(qū)號(hào)。

對(duì)于FAT32文件系統(tǒng)來(lái)說(shuō),DBR保留扇區(qū)數(shù)的取值范圍是32~38。

(4)10H:FAT個(gè)數(shù)。FAT個(gè)數(shù)描述了在FAT文件系統(tǒng)中存在著幾個(gè)FAT,一般在FAT文件系統(tǒng)中都有兩個(gè)FAT。

(5)11H~12H:未用。這兩個(gè)字節(jié)在FAT16文件系統(tǒng)中用來(lái)表示FDT最大能容納的目錄項(xiàng)數(shù)。因FAT32文件系統(tǒng)沒(méi)有固定的FDT,所以不使用這個(gè)參數(shù)。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3)BPB

(6)13H~14H:未用。這兩個(gè)字節(jié)在FAT16文件系統(tǒng)中用來(lái)表示小于32

MB分區(qū)的扇區(qū)總數(shù)。因FAT32文件系統(tǒng)的分區(qū)總是大于32

MB,所以不使用這個(gè)參數(shù)。

(7)15H:介質(zhì)描述符。介質(zhì)描述符是描述磁盤(pán)介質(zhì)的參數(shù),一般會(huì)根據(jù)磁盤(pán)性質(zhì)的不同取不同的值。

(8)16H~17H:未用。這兩個(gè)字節(jié)在FAT16文件系統(tǒng)中用來(lái)表示每個(gè)FAT包含的扇區(qū)數(shù),但在FAT32文件系統(tǒng)不使用這個(gè)參數(shù)。

(9)18H~19H:每磁道扇區(qū)數(shù)。這是邏輯C/H/S中的一個(gè)參數(shù),其值一般為63。

(10)1AH~1BH:磁頭數(shù)。這是邏輯C/H/S中的一個(gè)參數(shù),其值一般為255。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3)BPB

(11)1CH~1FH:隱含扇區(qū)數(shù)。隱含扇區(qū)數(shù)是指在本分區(qū)之前使用的扇區(qū)數(shù),與分區(qū)表中所描述的該分區(qū)的起始扇區(qū)號(hào)一致。對(duì)于主磁盤(pán)分區(qū)來(lái)講,隱含扇區(qū)數(shù)是MBR到該分區(qū)DBR間的扇區(qū)數(shù);對(duì)于擴(kuò)展分區(qū)中的邏輯驅(qū)動(dòng)器來(lái)講,隱含扇區(qū)數(shù)是EBR到該分區(qū)DBR間的扇區(qū)數(shù)。

(12)20H~23H:分區(qū)的扇區(qū)總數(shù)。分區(qū)的總扇區(qū)數(shù)也就是FAT32文件系統(tǒng)分區(qū)的大小。

(13)24H~27H:FAT扇區(qū)數(shù)。這4個(gè)字節(jié)用來(lái)記錄FAT32文件系統(tǒng)分區(qū)中每個(gè)FAT占用的扇區(qū)數(shù)。

(14)28H~29H:擴(kuò)展標(biāo)志。這兩個(gè)字節(jié)用于表示FAT2是否可用,當(dāng)將其二進(jìn)制數(shù)最高位置1時(shí),表示只有FAT1可用,否則FAT2也可用。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3)BPB

(15)2AH~2BH:版本。這兩個(gè)字節(jié)通常都為0。

(16)2CH~2FH:根目錄首簇號(hào)。分區(qū)在被格式化為FAT32文件系統(tǒng)時(shí),格式化程序會(huì)在數(shù)據(jù)區(qū)中指派一個(gè)簇作為FAT32文件系統(tǒng)的根目錄區(qū)的起始點(diǎn),并把該簇號(hào)記錄在BPB中。在通常情況下,數(shù)據(jù)區(qū)的第1簇(也就是2號(hào)簇)被分配給根目錄使用。

(17)30H~31H:文件系統(tǒng)信息扇區(qū)號(hào)。

(18)32H~33H:DBR備份扇區(qū)號(hào)。FAT32文件系統(tǒng)在DBR的保留扇區(qū)中設(shè)定了一個(gè)DBR的備份,一般在6號(hào)扇區(qū),也就是分區(qū)的第7個(gè)扇區(qū)。該備份扇區(qū)與原DBR的內(nèi)容完全一樣,如果原DBR遭到破壞,可以使用備份扇區(qū)進(jìn)行修復(fù)。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3)BPB

(19)34H~3FH:保留不用。這12個(gè)字節(jié)一般保留不用。

(20)40H:BIOS驅(qū)動(dòng)器號(hào)。這是BIOS的INT13H所描述的設(shè)備號(hào)碼,一般把硬盤(pán)定義為8×H。

(21)41H:保留不用。這個(gè)字節(jié)保留不用,為0。

(22)42H:擴(kuò)展啟動(dòng)標(biāo)志。擴(kuò)展啟動(dòng)標(biāo)志可以用來(lái)確認(rèn)后面的3個(gè)參數(shù)是否有效,一般值為29H。

(23)43H~46H:卷序列號(hào)。卷序列號(hào)是格式化程序在創(chuàng)建文件系統(tǒng)時(shí)生成的一組4個(gè)字節(jié)的隨機(jī)數(shù)值。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3)BPB

(24)47H~51H:卷標(biāo)。卷標(biāo)是用戶(hù)在創(chuàng)建文件系統(tǒng)時(shí)指定的一個(gè)卷的名稱(chēng)。Windows98之前的系統(tǒng)把卷標(biāo)記錄在這個(gè)地址處,Windows2000之后的系統(tǒng)已經(jīng)不再使用這個(gè)地址記錄卷標(biāo),而是由一個(gè)目錄項(xiàng)來(lái)管理卷標(biāo)。

(25)52H~59H:文件系統(tǒng)類(lèi)型,是BPB的最后一個(gè)參數(shù),直接用ASCII記錄當(dāng)前分區(qū)的文件系統(tǒng)類(lèi)型。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析4)引導(dǎo)程序FAT32文件系統(tǒng)的DBR引導(dǎo)程序占用420個(gè)字節(jié)(5AH~1FDH)。在Windows98之前的系統(tǒng)中,引導(dǎo)程序負(fù)責(zé)完成DOS3個(gè)系統(tǒng)文件的裝入;在Windows2000之后的系統(tǒng)中,其負(fù)責(zé)將系統(tǒng)文件NTIDR裝入。對(duì)于沒(méi)有安裝操作系統(tǒng)的分區(qū)來(lái)說(shuō),引導(dǎo)程序沒(méi)有用處。5)結(jié)束標(biāo)志DBR的結(jié)束標(biāo)志與MBR、EBR的結(jié)束標(biāo)志相同,為“55AA”。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析3.FAT32文件系統(tǒng)的FAT分析1)FAT的作用及結(jié)構(gòu)特點(diǎn)

(1)FAT32文件系統(tǒng)的FAT也是由FAT項(xiàng)構(gòu)成的。每個(gè)FAT項(xiàng)的大小為32位(相當(dāng)于4個(gè)字節(jié))。

(2)雖然FAT32文件系統(tǒng)的FAT項(xiàng)為32位,但是Windows系統(tǒng)只能用到26位。26位的FAT項(xiàng)最多可管理67108863個(gè)簇。

(3)Windows2000之后的系統(tǒng)能管理的簇的大小可以達(dá)到128個(gè)扇區(qū)(64

KB)。

(4)在FAT32文件系統(tǒng)的FAT中,未使用的簇對(duì)應(yīng)的FAT項(xiàng)用“00000000”這4個(gè)字節(jié)表示;一個(gè)已分配的簇號(hào)對(duì)應(yīng)的FAT項(xiàng)的取值范圍是十六進(jìn)制“00000002~0FFFFFFE”;在十六進(jìn)制“0FFFFFF0~0FFFFFF6”范圍間的取值是保留的;壞簇對(duì)應(yīng)的FAT項(xiàng)用“0FFFFFF7”這4個(gè)字節(jié)的十六進(jìn)制數(shù)表示;文件結(jié)束簇對(duì)應(yīng)的FAT項(xiàng)的取值范圍是十六進(jìn)制“0FFFFFF8~0FFFFFFF”,一般取“0FFFFFFF”,按照Little-Endian的字節(jié)序來(lái)寫(xiě)就是“FFFFFF0F”。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析2)FAT的實(shí)際應(yīng)用

下面模擬操作系統(tǒng)定位FAT32文件系統(tǒng)FAT的方法。操作系統(tǒng)定位FAT1的方法如下。

(1)系統(tǒng)通過(guò)該分區(qū)的分區(qū)表信息,定位到其DBR扇區(qū)。

(2)讀取0EH—0FH偏移地址處的“DBR保留扇區(qū)數(shù)”參數(shù),當(dāng)前值為38。

(3)讀取到“DBR保留扇區(qū)數(shù)”參數(shù)的值后,跳轉(zhuǎn)到該分區(qū)的38號(hào)扇區(qū),這里就是FAT1的開(kāi)始。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

下面就具體分析38號(hào)扇區(qū)的數(shù)據(jù)結(jié)構(gòu)。

該分區(qū)是剛格式化的一個(gè)分區(qū)。當(dāng)把分區(qū)格式化為FAT32文件系統(tǒng)時(shí),格式化程序會(huì)把分配給FAT的所有扇區(qū)都清零,然后寫(xiě)入0號(hào)FAT項(xiàng)和1號(hào)FAT項(xiàng)。FAT1的內(nèi)容如圖3-5所示。圖3-5FAT1的內(nèi)容3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

從圖3-5中可以看出,每個(gè)FAT項(xiàng)占用4個(gè)字節(jié),其中0號(hào)FAT項(xiàng)描述介質(zhì)類(lèi)型,其首字節(jié)為“F8”,表示介質(zhì)類(lèi)型為硬盤(pán);1號(hào)FAT項(xiàng)為骯臟標(biāo)志;2號(hào)FAT項(xiàng)為結(jié)束標(biāo)志,從DBR的BPB中可以看到根目錄的首簇號(hào)是2,而2號(hào)簇對(duì)應(yīng)的2號(hào)FAT項(xiàng)是一個(gè)結(jié)束標(biāo)志,說(shuō)明目前根目錄只占一個(gè)簇;從5號(hào)FAT項(xiàng)開(kāi)始之后都是空FAT項(xiàng),表示它們對(duì)應(yīng)的簇為可用簇。圖3-5FAT1的內(nèi)容3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

操作系統(tǒng)定位FAT2的方法如下。

操作系統(tǒng)通過(guò)該分區(qū)的分區(qū)表信息,定位到其DBR扇區(qū)。

讀取DBR的0EH—0FH偏移地址,得到“DBR保留扇區(qū)數(shù)”的值為38。

讀取DBR的24H—27H偏移地址,得到“每個(gè)FAT扇區(qū)數(shù)”的值為561。

用“DBR保留扇區(qū)數(shù)”的值加上“每個(gè)FAT扇區(qū)數(shù)”的值,結(jié)果等于599,跳轉(zhuǎn)到該分區(qū)的599號(hào)扇區(qū),這里就是FAT2的開(kāi)始。FAT2跟FAT1的內(nèi)容完全一樣。FAT2的內(nèi)容如圖3-6所示。圖3-6FAT2的內(nèi)容3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

除了0號(hào)FAT項(xiàng)和1號(hào)FAT項(xiàng)以外,如果一個(gè)FAT項(xiàng)為非零值,那么可能有以下3種情況。

(1)該FAT項(xiàng)映射的簇是一個(gè)不可用的壞簇,在該FAT項(xiàng)中有壞簇標(biāo)志(對(duì)于FAT32來(lái)說(shuō)為“0FFFFFF7”)。

(2)該FAT項(xiàng)映射的簇是某個(gè)文件的最后一個(gè)簇,在該FAT項(xiàng)中有結(jié)束標(biāo)志(對(duì)于FAT32來(lái)說(shuō)為“0FFFFFFF”)。

(3)該FAT項(xiàng)映射的簇被某個(gè)文件占用,但并不是文件的最后一個(gè)簇,在該FAT項(xiàng)中有文件下一個(gè)簇的簇號(hào)。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

舉例來(lái)說(shuō),假設(shè)某個(gè)文件被分配到數(shù)據(jù)區(qū)的3、4、5這3個(gè)簇中存放,3號(hào)簇會(huì)在該文件的目錄項(xiàng)中被記錄,4號(hào)簇和5號(hào)簇則在FAT表中被記錄,而記錄的方法是在3號(hào)簇所映射的3號(hào)FAT項(xiàng)中記錄簇號(hào)“4”,在4號(hào)簇所映射的4號(hào)FAT項(xiàng)中記錄簇號(hào)“5”,在5號(hào)簇所映射的5號(hào)FAT項(xiàng)中記錄結(jié)束標(biāo)志“0FFFFFFF”。FAT項(xiàng)實(shí)例如圖3-7所示。圖3-7FAT項(xiàng)實(shí)例3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

此處的數(shù)值字節(jié)序?yàn)椤癓ittle-Endian”,比如3號(hào)FAT項(xiàng)中的值從高位往低位讀取應(yīng)該是“00000004”,也就是十進(jìn)制數(shù)“3”。

那么如何定位每個(gè)FAT項(xiàng)在FAT中的偏移地址呢?這個(gè)很簡(jiǎn)單,在FAT32文件系統(tǒng)中,每個(gè)FAT項(xiàng)占用4個(gè)字節(jié),所以只要把FAT項(xiàng)號(hào)乘以4,得到的結(jié)果就是該FAT項(xiàng)在FAT中的起始偏移地址。例如,要想知道100號(hào)FAT項(xiàng)在FAT中的偏移地址,就用100乘以4得到結(jié)果400,從FAT的起始位置算起的400號(hào)偏移地址就是100號(hào)FAT項(xiàng)在FAT中的起始偏移地址。

另外,也可以用WinHex方便地找到每個(gè)FAT項(xiàng)的起始地址,在菜單欄中,選擇“位置”→“轉(zhuǎn)至FAT記錄”命令就可以實(shí)現(xiàn)這個(gè)功能。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析4.FAT32文件系統(tǒng)的數(shù)據(jù)區(qū)分析

1)數(shù)據(jù)區(qū)的位置FAT32文件系統(tǒng)的數(shù)據(jù)區(qū)是緊跟在FAT2之后的。下面模擬操作系統(tǒng)定位數(shù)據(jù)區(qū)的方法。這里以圖3-2中的DBR所在分區(qū)為例,介紹操作系統(tǒng)定位數(shù)據(jù)區(qū)的方法如下。

(1)系統(tǒng)通過(guò)該分區(qū)的分區(qū)表信息,定位到其DBR扇區(qū)。

(2)讀取DBR的0EH—0FH偏移地址,得到“DBR保留扇區(qū)數(shù)”的值為32。

(3)讀取DBR的24H—27H偏移地址,得到“每個(gè)FAT扇區(qū)數(shù)”的值為16376。

(4)用“DBR保留扇區(qū)數(shù)”的值加上2倍的“每個(gè)FAT扇區(qū)數(shù)”的值,結(jié)果等于32784,跳轉(zhuǎn)到該分區(qū)的32784號(hào)扇區(qū),這里就是數(shù)據(jù)區(qū)的起始位置。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析2)數(shù)據(jù)區(qū)的內(nèi)容FAT32文件系統(tǒng)數(shù)據(jù)區(qū)的內(nèi)容主要由3部分組成:根目錄、子目錄和文件內(nèi)容。在數(shù)據(jù)區(qū)中,操作系統(tǒng)是以“簇”為單位來(lái)管理這段空間的,第一個(gè)簇的編號(hào)為“2”。根據(jù)該例子中DBR的BPB記錄的“根目錄首簇號(hào)”為2,可以確定2號(hào)簇被分配給了根目錄。

通過(guò)模擬操作系統(tǒng)定位數(shù)據(jù)區(qū)的方法,可以確定數(shù)據(jù)區(qū)開(kāi)始于分區(qū)的1160號(hào)扇區(qū)。1160號(hào)扇區(qū)的內(nèi)容如圖3-8所示。圖3-81160號(hào)扇區(qū)的內(nèi)容3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

在分區(qū)的根目錄項(xiàng)中存入文件,數(shù)據(jù)區(qū)就有數(shù)據(jù)了。現(xiàn)在在該分區(qū)下存入一個(gè)文件,再查看數(shù)據(jù)區(qū)的2號(hào)簇,如圖3-9所示。圖3-9存入數(shù)據(jù)后的2號(hào)簇3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析5.FAT32文件系統(tǒng)的目錄項(xiàng)分析

在FAT32文件系統(tǒng)中,分區(qū)根目錄下的文件及文件夾的目錄項(xiàng)存放在根目錄區(qū)中;分區(qū)子目錄下的文件及文件夾的目錄項(xiàng)存放在子目錄區(qū)中;根目錄區(qū)和子目錄區(qū)都在數(shù)據(jù)區(qū)中。FAT32文件系統(tǒng)的目錄項(xiàng)與FAT16文件系統(tǒng)的目錄項(xiàng)一樣,都可以分為短文件名目錄項(xiàng)、長(zhǎng)文件名目錄項(xiàng)、“.”目錄項(xiàng)和“..”目錄項(xiàng)、卷標(biāo)目錄項(xiàng)4類(lèi)。

在FAT32文件系統(tǒng)的4類(lèi)目錄項(xiàng)中,只有文件名目錄項(xiàng)的結(jié)構(gòu)跟FAT16文件系統(tǒng)的稍有區(qū)別,其他3類(lèi)都完全一樣,所以本節(jié)就不再重復(fù)講解文件名目錄項(xiàng)、目錄項(xiàng)和錄項(xiàng)及卷標(biāo)目錄項(xiàng)的具體結(jié)構(gòu)了3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析FAT32文件系統(tǒng)的短文件名目錄項(xiàng)各字段的含義如表3-2所示。偏移地址字段長(zhǎng)度/個(gè)字節(jié)含

義00H8主文件名08H3文件擴(kuò)展名0BH1文件屬性00000000(讀/寫(xiě))00000001(只讀)00000010(隱含)00000100(系統(tǒng))00001000(卷標(biāo))00010000(子目錄)00100000(存檔)表3-2FAT32文件系統(tǒng)的短文件名目錄項(xiàng)各字段的含義3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析FAT32文件系統(tǒng)的短文件名目錄項(xiàng)各字段的含義如表3-2所示。表3-2FAT32文件系統(tǒng)的短文件名目錄項(xiàng)各字段的含義(續(xù)表)偏移地址字段長(zhǎng)度/個(gè)字節(jié)含

義0CH1未用0DH1文件創(chuàng)建時(shí)間精確到10ms0EH2文件創(chuàng)建時(shí)間,包括時(shí)、分、秒10H2文件創(chuàng)建日期,包括年、月、日12H2文件最近訪(fǎng)問(wèn)日期,包括年、月、日14H2文件起始簇號(hào)的高位16H2文件修改時(shí)間,包括時(shí)、分、秒18H2文件修改日期,包括年、月、日1AH2文件起始簇號(hào)的低位1CH4文件大?。ㄒ宰止?jié)為單位)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

將光標(biāo)放在目錄項(xiàng)的第一個(gè)字節(jié)上,然后打開(kāi)WinHex中FAT32文件系統(tǒng)的短文件名目錄項(xiàng)的模板,如圖3-10所示。圖3-10短文件名目錄項(xiàng)的模板3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

(1)00H~07H:文件名。文件名共占8個(gè)字節(jié)。如果文件名用不完8個(gè)字節(jié),后面用空格(十六進(jìn)制數(shù)為20H)填充。在當(dāng)前例子中文件名為“SYSLOG”

(2)08H~0AH:擴(kuò)展名。擴(kuò)展名共占3個(gè)字節(jié),對(duì)于文件夾來(lái)說(shuō),如果沒(méi)有擴(kuò)展名,則這3個(gè)字節(jié)用空格填充。在當(dāng)前例子中擴(kuò)展名為“TXT”。

(3)0BH:屬性。屬性占1個(gè)字節(jié),可以表示文件的各種屬性,表示的方法是按二進(jìn)制位定義,最高兩位保留未用,0~5位分別是只讀位、隱含位、系統(tǒng)位、卷標(biāo)位、子目錄位和存檔位。

(4)0CH:保留未用。

(5)0DH:創(chuàng)建時(shí)間精確到10

ms。文件被創(chuàng)建的時(shí)間精確到10

ms的值一般用該字節(jié)進(jìn)行表示。在當(dāng)前例子中該值為“01H”,換算成十進(jìn)制數(shù)即為1,所以文件的創(chuàng)建時(shí)間為10ms,也就是0.01s。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

(6)0EH~0FH:創(chuàng)建時(shí)間。這是文件創(chuàng)建的時(shí)、分、秒的數(shù)值,一般用16位二進(jìn)制數(shù)記錄文件創(chuàng)建時(shí)間。時(shí)、分、秒3部分的表達(dá)方法如下。

①0~4位:這5位記錄“秒”值,將此值乘以2即是文件創(chuàng)建時(shí)間實(shí)際的“秒”值,其取值范圍是0~29。

②5~10位:這6位記錄“分”值,其取值范圍是0~59。

③11~15位:這5位記錄“時(shí)”值,其取值范圍是0~23。

(7)10H~11H:創(chuàng)建日期。這是文件創(chuàng)建的年、月、日的數(shù)值,用16位二進(jìn)制數(shù)記錄文件創(chuàng)建日期,年、月、日3部分的表達(dá)方法如下。①0~4位:這5位記錄“日”值,其取值范圍是1~31。②5~8位:這4位記錄“月”值,其取值范圍是1~12。③9~15位:這7位記錄“年”值,因?yàn)槠渲凳菑?980年開(kāi)始計(jì)數(shù)的,所以必須加1980才能得到正確的年份,其取值范圍是0~127。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析

(8)12H~13H:訪(fǎng)問(wèn)日期。這是文件最后訪(fǎng)問(wèn)的年、月、日的數(shù)值,表達(dá)方法與創(chuàng)建日期一致。

(9)14H~15H:起始簇號(hào)(高位,Hex)。這兩個(gè)字節(jié)作為文件起始簇號(hào)的高位使用。當(dāng)前例子中該值為“0002H”。

(10)16H~17H:更新時(shí)間。這是文件最后修改的時(shí)、分、秒的數(shù)值,用16位二進(jìn)制數(shù)記錄文件最后修改時(shí)間。其表達(dá)方法與創(chuàng)建時(shí)間一致。

(12)1AH~1BH:起始簇號(hào)(低位,Hex)。這兩個(gè)字節(jié)作為文件起始簇號(hào)的低位使用。當(dāng)前例子中該值為“1003H”。

(13)1CH~1FH:文件大小。文件大小占用4個(gè)字節(jié),記錄著文件的總字節(jié)數(shù)。當(dāng)前值為“0AHE1H”,換算成十進(jìn)制數(shù)即為2785,說(shuō)明文件大小為2785個(gè)字節(jié)。

3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.1FAT32文件系統(tǒng)的結(jié)構(gòu)與分析6.FAT32文件系統(tǒng)根目錄與子目錄的管理

1)根目錄的管理FAT32文件系統(tǒng)統(tǒng)一在數(shù)據(jù)區(qū)的根目錄中為文件創(chuàng)建目錄項(xiàng),并由FAT為文件的內(nèi)容分配簇來(lái)存放數(shù)據(jù)。而根目錄的首簇由格式化程序進(jìn)行指派,并把指派的簇號(hào)記錄在DBR的BPB中。如果根目錄下的文件數(shù)目過(guò)多,這些文件的目錄項(xiàng)在根目錄的首簇存放不下,F(xiàn)AT就會(huì)為根目錄分配新的簇來(lái)存放根目錄下文件及文件夾的目錄項(xiàng)。2)子目錄的管理FAT32文件系統(tǒng)的根目錄、子目錄及數(shù)據(jù)都是存放在數(shù)據(jù)區(qū)的3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

要想從FAT32文件系統(tǒng)中提取數(shù)據(jù),就要先找到根目錄。下面就以“I”盤(pán)中的“WinHex快捷鍵”文件為例來(lái)了解從FAT32文件系統(tǒng)中提取數(shù)據(jù)的步驟。“I”盤(pán)如圖3-11所示?!癢inHex快捷鍵”文件如圖3-12所示。圖3-11“I”盤(pán)圖3-12“WinHex快捷鍵”文檔3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

首先,用WinHex打開(kāi)“I”盤(pán),如圖3-13所示。圖3-13打開(kāi)“I”盤(pán)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

分區(qū)表圖如3-15所示,可以看到DBR是在2048號(hào)扇區(qū)中。圖3-15分區(qū)表3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

打開(kāi)“I”盤(pán)后,“I”盤(pán)中的MBR扇區(qū)如圖3-14所示。圖3-14“I”盤(pán)中的MBR扇區(qū)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

跳轉(zhuǎn)到2048扇區(qū),如圖3-16所示。圖3-16跳轉(zhuǎn)到2048扇區(qū)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

找到“I”盤(pán)的DBR扇區(qū)(FAT32DBR跳轉(zhuǎn)指令EB5890),如圖3-17所示。圖3-17“I”盤(pán)的DBR扇區(qū)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

0EH~0FH這兩個(gè)字節(jié)如圖3-18所示。圖3-180EH~0FH這兩個(gè)字節(jié)內(nèi)容3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

FAT如圖3-19所示。圖3-19FAT3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

FAT32文件系統(tǒng)有兩個(gè)FAT。我們只找到了第1個(gè),接下來(lái)找第2個(gè)。FAT32文件系統(tǒng)的FAT2是FAT1的備份,所以FAT2和FAT1是一模一樣的。根據(jù)這點(diǎn),我們可以用“查找十六進(jìn)制數(shù)值”功能來(lái)搜索FAT2,搜索FAT1的頭4個(gè)字節(jié)內(nèi)容“F8FFFF0F”,如圖3-20所示。圖3-20搜索FAT1的頭4個(gè)字節(jié)內(nèi)容“F8FFFF0F”3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

搜索到FAT2在18456扇區(qū),如圖3-21所示。圖3-21FAT2在18456扇區(qū)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

知道了FA1和FAT2的起始位置,就可以開(kāi)始查找FAT32文件系統(tǒng)的根目錄了,具體步驟如下。

(1)先算出一個(gè)FAT的大小,即用FAT2的起始位置減去FAT1的起始位置就等于FAT的大小,18456-2080=16376,F(xiàn)AT的大小是16376。

(2)再用FAT2的起始位置加FAT的大小就得到了根目錄的起始位置,18

456+16

376=34

832,即根目錄的起始位置在34832扇區(qū)。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

如圖3-22所示。圖3-22根目錄的起始位置3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

找到根目錄后,就可以分析根目錄并提取數(shù)據(jù)了。要提取一個(gè)文件數(shù)據(jù),需要先找到這個(gè)文件的目錄項(xiàng)。例如,要提取“WinHex快捷鍵”文件,需要先找到記錄它的目錄項(xiàng),如圖3-23所示。圖3-23“WinHex快捷鍵”文件的目錄項(xiàng)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

目錄項(xiàng)中文件的起始簇號(hào)如圖3-24所示。“WinHex快捷鍵”文件是一個(gè)DOC格式的文檔。在提取數(shù)據(jù)時(shí),我們除了要知道自己需要的文件之外,還需要分析目錄項(xiàng)中的文件的起始簇號(hào)和文件的大小。圖3-24目錄項(xiàng)起始簇號(hào)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

從圖3-24中可以看到,目錄項(xiàng)中文件的起始簇號(hào)高位是“0000”、低位是“0600”。在用計(jì)算器將高位、低位上的二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)時(shí)需要保持高位在前、低位在后。例如,高位是“0000”,低位是“0600”,則應(yīng)寫(xiě)成“00000600”,再把高位和低位的兩個(gè)字節(jié)反轉(zhuǎn)成為“00000006”并寫(xiě)入計(jì)算器進(jìn)行數(shù)制轉(zhuǎn)換。圖3-24目錄項(xiàng)起始簇號(hào)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

在一般情況下,如果高位是“0000”則可直接忽略高位,只看低位,如圖3-25所示。圖3-25“WinHex快捷鍵”文件的起始簇號(hào)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

因?yàn)楦夸浽?4

832扇區(qū),所以可以算出“WinHex快捷鍵”文件的起始位置在3

496

034

832+128=34

960扇區(qū)。接下來(lái),我們跳轉(zhuǎn)到“WinHex快捷鍵”文件頭處,如圖3-26所示。圖3-26“WinHex快捷鍵”文件頭3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

找到了“WinHex快捷鍵”文件頭之后,就要開(kāi)始找它的尾了。“WinHex快捷鍵”文件尾可以用文件的大小進(jìn)行查找。從圖3-27可以看到,“WinHex快捷鍵”文件的大小是2

305

024個(gè)字節(jié)。圖3-27“WinHex快捷鍵”文件尾3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

現(xiàn)在,“WinHex快捷鍵”文件頭和文件尾都知道了,就可以提取數(shù)據(jù)了。先跳轉(zhuǎn)到“WinHex快捷鍵”文件的起始扇區(qū)處,右擊第一個(gè)字節(jié),在右鍵快捷菜單中選擇“選塊起始位置”選項(xiàng),如圖3-28所示。圖3-28右擊第一個(gè)字節(jié)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

跳轉(zhuǎn)到“WinHex快捷鍵”文件尾處(39462扇區(qū)),在“WinHex快捷鍵”文件尾后的空白處右擊,在右鍵快捷菜單中選擇“選塊尾部”選項(xiàng),如圖3-29所示。圖3-29選擇“選塊尾部”選項(xiàng)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

這樣就選中了“WinHex快捷鍵”文件的所有數(shù)據(jù),然后右擊,選擇“編輯”選項(xiàng),如圖3-30所示,再選擇“復(fù)制選塊”→“至新文件”選項(xiàng),如圖3-31所示。圖3-30選擇“編輯”選項(xiàng)

圖3-31選擇“復(fù)制選塊”→“至新文件”選項(xiàng)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

在“另存為”對(duì)話(huà)框中,單擊“保存”按鈕,如圖3-32所示。圖3-32“另存為”對(duì)話(huà)框3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.2從FAT32文件系統(tǒng)中提取數(shù)據(jù)

最后,在本地磁盤(pán)(I:)中會(huì)出現(xiàn)一個(gè)新文件。圖3-33提取出來(lái)的數(shù)據(jù)3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)

如果雙擊FAT32分區(qū)“I”盤(pán)時(shí)出現(xiàn)如圖3-34所示的提示信息,則要判斷“I”盤(pán)是否存在物理故障,若無(wú)物理故障,則說(shuō)明FAT32文件系統(tǒng)遭到了破壞。這時(shí),千萬(wàn)不要單擊“格式化磁盤(pán)”按鈕,否則磁盤(pán)中的數(shù)據(jù)會(huì)被清空。圖3-34雙擊FAT32分區(qū)“I”盤(pán)時(shí)出現(xiàn)的提示信息3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)

用WinHex打開(kāi)“I”盤(pán),檢查發(fā)現(xiàn)“I”盤(pán)的DBR已經(jīng)被破壞,如圖3-35所示。圖3-35“I”盤(pán)的DBR3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)

手工修復(fù)的步驟。第1步,自建一個(gè)FAT32文件系統(tǒng)格式的磁盤(pán),然后把自建盤(pán)的DBR扇區(qū)復(fù)制到故障盤(pán)DBR處,如圖3-36、圖3-37所示。圖3-36復(fù)制自建盤(pán)DBR3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)

手工修復(fù)的步驟。第1步,自建一個(gè)FAT32文件系統(tǒng)格式的磁盤(pán),然后把自建盤(pán)的DBR扇區(qū)復(fù)制到故障盤(pán)DBR處,如圖3-36、圖3-37所示。圖3-37把自建盤(pán)DBR粘貼到故障盤(pán)DBR處3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)

手工修復(fù)的步驟。第2步,自建盤(pán)DBR被粘貼到故障盤(pán)的相應(yīng)位置后是不能直接使用的,還要修改其中幾個(gè)重要參數(shù)。圖3-38修改0DH每簇扇區(qū)數(shù)

(1)修改0DH每簇扇區(qū)數(shù)(每簇扇區(qū)數(shù)可以為2,4,6,8,16,32,64,128…,在FAT32文件系統(tǒng)中一般為32),如圖3-38所示。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)

手工修復(fù)的步驟。第2步,自建盤(pán)DBR被粘貼到故障盤(pán)的相應(yīng)位置后是不能直接使用的,還要修改其中幾個(gè)重要參數(shù)。圖3-39修改0EH~0FHDOS扇區(qū)數(shù)

(2)修改0EH~0FHDOS扇區(qū)數(shù)(DBR到FAT1之間的扇區(qū)數(shù)一般為32,36,38,此處為32),如圖3-39所示。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)

手工修復(fù)的步驟。第2步,自建盤(pán)DBR被粘貼到故障盤(pán)的相應(yīng)位置后是不能直接使用的,還要修改其中幾個(gè)重要參數(shù)。圖3-40修改1CH~1FH隱含扇區(qū)

(3)修改1CH~1FH隱含扇區(qū)(DBR所在的扇區(qū),此處為2048),如圖3-40所示。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)圖3-41分區(qū)表分區(qū)大小

(4)修改20H~23H分區(qū)大小。分區(qū)大小可以在分區(qū)表中查看,也可用總扇區(qū)減去數(shù)據(jù)區(qū)的起始扇區(qū)(數(shù)據(jù)區(qū)的起始扇區(qū)=FAT2起始扇區(qū)+FAT的大?。┑玫椒謪^(qū)大小。分區(qū)表分區(qū)大小如圖3-41所示。DBR分區(qū)大小如圖3-42所示。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)圖3-42DBR分區(qū)大小

(4)修改20H~23H分區(qū)大小。分區(qū)大小可以在分區(qū)表中查看,也可用總扇區(qū)減去數(shù)據(jù)區(qū)的起始扇區(qū)(數(shù)據(jù)區(qū)的起始扇區(qū)=FAT2起始扇區(qū)+FAT的大?。┑玫椒謪^(qū)大小。分區(qū)表分區(qū)大小如圖3-41所示。DBR分區(qū)大小如圖3-42所示。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)圖3-43修改24H~27HFAT的大小

(5)修改24H~27HFAT的大小。FAT的大小可以先從F8FFFF0F向下搜索到FAT1起始扇區(qū),再按“F3”鍵搜索到FAT2起始扇區(qū)。FAT的大小=FAT2起始扇區(qū)-FAT1起始扇區(qū),此處為16376,如圖3-43所示。3.1FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)3.1.3FAT32文件系統(tǒng)DBR遭破壞后的恢復(fù)圖3-44修復(fù)好的“I”盤(pán)

完成上述步驟后,“I”盤(pán)的DBR就修復(fù)好了。修復(fù)好的“I”盤(pán)如圖3-44所示。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.1NTFS的特點(diǎn)

NTFS是隨著WindowsNT系統(tǒng)的誕生而出現(xiàn)的,并隨著WindowsNT系統(tǒng)家族跨入主力文件系統(tǒng)的行列。它的安全性和穩(wěn)定性極其出色。它在使用中不易產(chǎn)生文件碎片,同時(shí)還提供了容錯(cuò)結(jié)構(gòu)日志,可以將用戶(hù)的操作全部記錄下來(lái),從而保護(hù)了系統(tǒng)的安全。NTFS的具體特點(diǎn)如下:(1)安全性。(2)可恢復(fù)性。(3)文件壓縮。(4)磁盤(pán)配額(5)B+樹(shù)的文件管理。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

如果將硬盤(pán)的一個(gè)分區(qū)格式化為NTFS分區(qū),則建立了一個(gè)NTFS結(jié)構(gòu)。NTFS與FAT文件系統(tǒng)一樣,也是以簇為基本單位對(duì)磁盤(pán)空間和文件存儲(chǔ)進(jìn)行管理的。

文件系統(tǒng)在通過(guò)簇管理磁盤(pán)時(shí)不需要知道磁盤(pán)扇區(qū)的大小,這樣便使NTFS保持了與磁盤(pán)扇區(qū)大小的獨(dú)立性,從而使不同大小的磁盤(pán)能選擇合適的簇。NTFS分區(qū)又稱(chēng)NTFS卷,而卷上簇的大小又稱(chēng)卷因子。卷因子的大小是用戶(hù)在創(chuàng)建NTFS卷時(shí)確定的。

當(dāng)一個(gè)簇占用的空間較小時(shí),會(huì)出現(xiàn)較多的磁盤(pán)碎片,造成磁盤(pán)空間和文件訪(fǎng)問(wèn)在時(shí)間上的浪費(fèi);反之,當(dāng)一個(gè)簇占用的空間較大時(shí),會(huì)直接造成磁盤(pán)空間的浪費(fèi)。因此,最大限度優(yōu)化系統(tǒng)對(duì)文件的訪(fǎng)問(wèn)速度和最大限度減少磁盤(pán)空間的浪費(fèi)是確定簇的大小的主要因素。簇的大小一定是扇區(qū)大小的整數(shù)倍,通常為2n(n為整數(shù))。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析NTFS卷和簇的大小關(guān)系表如表3-3所示,這并不是完全固定的,僅為在系統(tǒng)格式化磁盤(pán)時(shí)的默認(rèn)情況。這個(gè)默認(rèn)的簇的大小一般被認(rèn)為是最能優(yōu)化系統(tǒng)的值。NTFS卷的大小/MB每簇的扇區(qū)數(shù)/個(gè)默認(rèn)的簇的大小不大于5121512個(gè)字節(jié)(0.5

KB)513~102421024個(gè)字節(jié)(1

KB)1025~204842048個(gè)字節(jié)(2

KB)不小于204984

KB表3-3NTFS卷和簇的大小關(guān)系表3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析NTFS使用了邏輯簇號(hào)(LogicalClusterNumber,LCN)和虛擬簇號(hào)(VirtualClusterNumber,VCN)對(duì)NTFS卷進(jìn)行管理。其中,LCN是對(duì)NTFS卷的第一個(gè)簇到最后一個(gè)簇進(jìn)行編號(hào)。

在系統(tǒng)底層中,也是通過(guò)這個(gè)方法對(duì)文件的簇進(jìn)行定位的。簇在磁盤(pán)中的起始扇區(qū)位置的計(jì)算公式為:

簇在磁盤(pán)中的起始扇區(qū)號(hào)=每簇扇區(qū)數(shù)×簇號(hào)+卷的隱含扇區(qū)數(shù)VCN是對(duì)特定文件的簇從頭到尾進(jìn)行的編號(hào)。這樣做的原因是方便系統(tǒng)對(duì)文件中的數(shù)據(jù)進(jìn)行引用。VCN不要求在物理上是連續(xù)的。要確定VCN在磁盤(pán)上的定位,需要先將其轉(zhuǎn)換成LCN。NTFS的第一個(gè)扇區(qū)為引導(dǎo)扇區(qū),即DBR扇區(qū)。引導(dǎo)扇區(qū)有NTFS分區(qū)的引導(dǎo)程序和一些BPB參數(shù)。系統(tǒng)會(huì)根據(jù)這些BPB參數(shù)得到分區(qū)的重要信息。如果沒(méi)有這些信息,分區(qū)將不能被正常使用。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

在NTFS的主文件表中還記錄了一些非常重要的系統(tǒng)數(shù)據(jù)。這些數(shù)據(jù)稱(chēng)為元數(shù)據(jù)文件,簡(jiǎn)稱(chēng)“元文件”,包括了用于文件定位和恢復(fù)的數(shù)據(jù)結(jié)構(gòu)、引導(dǎo)程序數(shù)據(jù)及整個(gè)卷的分配位圖等信息。NTFS將這些數(shù)據(jù)當(dāng)成文件進(jìn)行管理,且用戶(hù)不能訪(fǎng)問(wèn)這些數(shù)據(jù)。NTFS分配給主文件表的區(qū)域大約占據(jù)了磁盤(pán)空間的12.5%,剩余的磁盤(pán)空間用來(lái)存放其他元文件和用戶(hù)的文件。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析NTFS的大致結(jié)構(gòu)如圖3-46所示。圖3-46NTFS的大致結(jié)構(gòu)3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析NTFS的補(bǔ)充說(shuō)明:

(1)圖3-46中的結(jié)構(gòu)僅為NTFS結(jié)構(gòu)的示意圖。

(2)元文件在圖3-46中只體現(xiàn)了一部分,沒(méi)有畫(huà)完整,且除了$Boot文件以外,其他元文件的位置不是固定的,例如,$MFT文件也可以在$MFTMirr文件之后。

(3)NTFS所在分區(qū)的最后一個(gè)扇區(qū)是DBR的備份,但該扇區(qū)不屬于NTFS。圖3-46NTFS的大致結(jié)構(gòu)3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

1.NTFS引導(dǎo)扇區(qū)分析NTFS的引導(dǎo)扇區(qū)是$Boot文件的第一個(gè)扇區(qū)。因?yàn)樗慕Y(jié)構(gòu)與FAT文件系統(tǒng)的DBR的類(lèi)似,所以在習(xí)慣上也將該扇區(qū)稱(chēng)為DBR扇區(qū)。DBR扇區(qū)在系統(tǒng)的引導(dǎo)過(guò)程中起著非常重要的作用。如果這個(gè)扇區(qū)遭到破壞,系統(tǒng)將不能正常啟動(dòng)。NTFS與FAT文件系統(tǒng)的DBR扇區(qū)一樣,也包括跳轉(zhuǎn)指令、OEM代號(hào)、BPB、引導(dǎo)程序和結(jié)束標(biāo)志。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

一個(gè)完整的NTFS的DBR扇區(qū)如圖3-47所示。圖3-47一個(gè)完整的NTFS的DBR扇區(qū)3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

1)跳轉(zhuǎn)指令

跳轉(zhuǎn)指令本身占用2個(gè)字節(jié)。它會(huì)將程序執(zhí)行流程跳轉(zhuǎn)到引導(dǎo)程序處。例如,當(dāng)前DBR中的“EB52”,就代表了匯編語(yǔ)言的“JMP52”。

2)OEM代號(hào)OEM代號(hào)占用8個(gè)字節(jié)。其內(nèi)容是由創(chuàng)建該文件系統(tǒng)的OEM廠(chǎng)商具體安排的。例如,Windows系統(tǒng)將此處直接設(shè)置為NTFS。在NTFS中,OEM代號(hào)又稱(chēng)“文件系統(tǒng)ID”。

使用WinHex可以輕易地改變OEM代號(hào),而且即使改變OEM代號(hào)也并不會(huì)影響文件系統(tǒng)的使用。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

3)BPBBPB的含義為BIOS參數(shù)塊。BPB從DBR的第12個(gè)字節(jié)(0BH)處開(kāi)始,到53H處結(jié)束,占用73個(gè)字節(jié)。BPB記錄了有關(guān)文件系統(tǒng)的重要信息。NTFS的BPB各字段的含義如表3-4所示。表3-4NTFS的BPB各字段的含義3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

這些參數(shù)也可以通過(guò)WinHex的模板來(lái)查看。WinHex的模板管理器提供了NTFS的DBR模板。打開(kāi)WinHex的“模板管理器”對(duì)話(huà)框,如圖3-48所示,選擇“NTFS引導(dǎo)扇區(qū)”選項(xiàng)。圖3-48“模板管理器”對(duì)話(huà)框3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

“NTFS引導(dǎo)扇區(qū)”對(duì)話(huà)框如圖3-49所示。圖3-49“NTFS引導(dǎo)扇區(qū)”對(duì)話(huà)框

(1)0BH~0CH:每個(gè)扇區(qū)字節(jié)數(shù)(扇區(qū)大?。?。每個(gè)扇區(qū)字節(jié)數(shù)記錄了每個(gè)扇區(qū)的大小,其常見(jiàn)值為512。但每個(gè)扇區(qū)字節(jié)數(shù)并不是固定值,可以由程序定義,其合法值包括512、1024、2048和4096?!?/p>

(2)0DH:每簇扇區(qū)數(shù)(簇大小)。每簇扇區(qū)數(shù)記錄著文件系統(tǒng)的簇的大小,即由多少個(gè)扇區(qū)組成一個(gè)簇。如果這個(gè)分區(qū)是在系統(tǒng)安裝前被格式化而來(lái)的,一般大于2

GB的分區(qū)每簇默認(rèn)占用8個(gè)扇區(qū),即每簇大小為4

KB,這個(gè)字節(jié)的內(nèi)容即為“08H”。

(3)0EH~0FH:保留扇區(qū)數(shù)。在NTFS中,DBR沒(méi)有保留扇區(qū),這兩個(gè)字節(jié)常為“0000”。

(4)10H~12H:總是0,這3個(gè)字節(jié)總是“000000”。

(5)13H~14H:未用。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

(6)15H:介質(zhì)描述。對(duì)于一般硬盤(pán),這個(gè)字節(jié)為“F8H”;雙面3.5英寸的軟盤(pán)RAM虛擬盤(pán)為“FAH”。因?yàn)镹TFS分區(qū)一定在硬盤(pán)上,所以這個(gè)字節(jié)常為“F8H”。

(7)16H~17H:未用。

(8)18H~19H:每磁頭扇區(qū)數(shù)。這是邏輯C/H/S中的一個(gè)參數(shù),其值一般為63。NTFS現(xiàn)己經(jīng)不用此參數(shù)。

(9)1AH~1BH:每柱面磁頭數(shù)。這是邏輯C/H/S中的一個(gè)參數(shù),其值一般為255。NTFS現(xiàn)已經(jīng)不用此參數(shù)。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

(10)1CH~1FH:隱含扇區(qū)數(shù)。隱含扇區(qū)數(shù)是指在本分區(qū)之前所使用的扇區(qū)數(shù),該值與分區(qū)表中描述的該分區(qū)的起始扇區(qū)號(hào)一致。對(duì)于主磁盤(pán)分區(qū)而言,隱含扇區(qū)數(shù)是指MBR到該分區(qū)DBR之間的扇區(qū)數(shù);對(duì)于擴(kuò)展分區(qū)中的邏輯驅(qū)動(dòng)器而言,隱含扇區(qū)數(shù)是指EBR到該分區(qū)DBR之間的扇區(qū)數(shù)。

(11)20H~23H:未使用。

(12)24H~27H:未使用,但總是“80008000”。

(13)28H~2FH:扇區(qū)總數(shù)。扇區(qū)總數(shù)是指分區(qū)的總扇區(qū)數(shù)。在NTFS的BPB中記錄的分區(qū)大小比在分區(qū)表中記錄的分區(qū)大小少一個(gè)扇區(qū),因?yàn)榉謪^(qū)的最后一個(gè)扇區(qū)留給DBR備份使用了。

(14)30H~37H:$MFT文件的起始簇號(hào)。此位置是使用簇號(hào)進(jìn)行定義的,而不是使用扇區(qū)號(hào)進(jìn)行定義的,且該地址不是固定的。

(15)38H~3FH:$MFTMirr文件的起始簇號(hào)。此位置使用簇號(hào)進(jìn)行定義。$MFTMirr文件的地址不是固定的。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

(16)40H:文件記錄的大?。總€(gè)MFT的簇?cái)?shù))。這個(gè)字節(jié)用來(lái)描述每個(gè)文件記錄的簇?cái)?shù)。注意,該參數(shù)為帶符號(hào)數(shù),當(dāng)其為負(fù)數(shù)時(shí),說(shuō)明每個(gè)文件記錄的大小要小于每簇扇區(qū)數(shù)。

(17)41H~43H:未使用。

(18)44H:每個(gè)索引緩沖區(qū)的簇?cái)?shù)。這個(gè)字節(jié)用來(lái)描述每個(gè)索引緩沖區(qū)的大小。

(19)45H~47H:未使用。

(20)48H~4FH:卷序列號(hào)。這8個(gè)字節(jié)為分區(qū)的邏輯序列號(hào),也就是在命令行下輸入DIR命令后顯示的一排數(shù)據(jù)。這個(gè)序列號(hào)是硬盤(pán)在格式化時(shí)隨機(jī)產(chǎn)生的。。

(21)50H~51H:校驗(yàn)和。BPB的最后4個(gè)字節(jié)是其校驗(yàn)和,一般為0。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

4)引導(dǎo)程序NTFS的DBR引導(dǎo)程序占用426個(gè)字節(jié)(54H~1FDH),負(fù)責(zé)將系統(tǒng)文件NTLDR裝入分區(qū)。但對(duì)于沒(méi)有安裝操作系統(tǒng)的分區(qū)而言,這段程序沒(méi)有用處5)結(jié)束標(biāo)志DBR的結(jié)束標(biāo)志與MBR、EBR的結(jié)束標(biāo)志相同,均為“55AA”。

以上5個(gè)部分共占用512個(gè)字節(jié),正好為1個(gè)扇區(qū)的大小,這個(gè)扇區(qū)屬于$Boot文件的組成部分。在該部分的內(nèi)容中,除了第5部分結(jié)束標(biāo)志是固定不變的之外,其余4部分都是不完全確定的,并會(huì)根據(jù)操作系統(tǒng)版本的不同而不同,也會(huì)隨邏輯盤(pán)參數(shù)的變化而變化。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

2.$MFT文件分析

1)NTFS的元文件

將一個(gè)分區(qū)格式化為NTFS分區(qū)后,格式化程序會(huì)為該分區(qū)寫(xiě)入很多重要的系統(tǒng)信息,這些系統(tǒng)信息在NTFS中稱(chēng)為元文件。這些元文件文件名的第一個(gè)字符都是“$”,表示該文件是隱含的,且用戶(hù)無(wú)法訪(fǎng)問(wèn)和修改該文件。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

NTFS的元文件及其功能如表3-5所示。序號(hào)元

件功

能0$MFT主文件表本身,是每個(gè)文件的索引文件1$MFTMirr主文件表的部分鏡像文件2$LogFile事務(wù)型日志文件3$Volume卷文件,記錄卷標(biāo)等信息4$AttrDef屬性定義列表文件5$Root根目錄文件,管理根目錄6$Bitmap位圖文件,記錄了分區(qū)中簇的使用情況7$Boot引導(dǎo)文件,記錄了用于系統(tǒng)引導(dǎo)的數(shù)據(jù)情況8$BadClus壞簇列表文件9$Secure安全文件10$UpCase大小寫(xiě)字符轉(zhuǎn)換表文件11$Extendedmetadatadirectory擴(kuò)展元數(shù)據(jù)目錄文件12$Extend\$Reparse重解析點(diǎn)文件13$Extend\$UsnJml變更日志文件14$Extend\$Quota配額管理文件15$Extend\$ObjId對(duì)象ID文件表3-5NTFS的元文件及其功能3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

2)$MFT文件

在NTFS中,磁盤(pán)上的所有數(shù)據(jù)都是以文件的形式出現(xiàn)的,即使是NTFS的管理信息也是以元文件的形式存儲(chǔ)的。在17個(gè)元文件中,$MFT文件是一個(gè)非常重要的元文件。它由文件記錄構(gòu)成,每個(gè)文件記錄占用2個(gè)扇區(qū)。

因?yàn)?MFT文件本身非常重要,所以為確保文件系統(tǒng)結(jié)構(gòu)的可靠性,系統(tǒng)專(zhuān)門(mén)為它準(zhǔn)備了一個(gè)鏡像文件($MFTMirr文件),即對(duì)應(yīng)于$MFT文件中的第2個(gè)文件記錄。但這并不是$MFT文件的完整鏡像,而是一小部分的鏡像,一般只鏡像$MFT文件的前4個(gè)文件記錄。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

$MFT文件的前16個(gè)文件記錄的順序是固定的,下面對(duì)這16個(gè)文件記錄進(jìn)行簡(jiǎn)單介紹。

第1個(gè)文件記錄為$MFT文件自身的記錄,即$MFT文件首先對(duì)自己進(jìn)行管理。

第2個(gè)文件記錄為$MFTMirr文件的記錄,即為$MFT文件前4個(gè)文件記錄的鏡像。

第3個(gè)文件記錄是$LogFile文件的記錄。該文件是NTFS為實(shí)現(xiàn)可恢復(fù)性和安全性而設(shè)計(jì)的。

第4個(gè)文件記錄是$Volume文件的記錄。該文件包含卷名、NTFS的版本和一個(gè)標(biāo)明該磁盤(pán)是否損壞的標(biāo)志位。

第5個(gè)文件記錄是$AttrDef文件的記錄。

第6個(gè)文件記錄是$Root文件的記錄。該文件中保存著該卷中根目錄下的所有文件和目錄的索引。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

$MFT文件的前16個(gè)文件記錄的順序是固定的,下面對(duì)這16個(gè)文件記錄進(jìn)行簡(jiǎn)單介紹。

第7個(gè)文件記錄是$Bitmap文件的記錄。NTFS卷的簇的使用情況都被保存在這個(gè)位圖文件中,其中每一位(bit)都代表卷中的一簇,標(biāo)識(shí)該簇是空閑的還是已分配的。

第8個(gè)文件記錄是$Boot文件的記錄。該文件中存放著操作系統(tǒng)的引導(dǎo)程序代碼。

第9個(gè)文件記錄是$BadClus文件的記錄。該文件記錄著在該卷中所有損壞的簇號(hào),防止系統(tǒng)對(duì)其進(jìn)行分配使用。

第10個(gè)文件記錄是$Secure文件的記錄。該文件存儲(chǔ)著整個(gè)卷的安全描述符數(shù)據(jù)庫(kù)。NTFS文件和目錄都有各自的安全描述符。

3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

$MFT文件的前16個(gè)文件記錄的順序是固定的,下面對(duì)這16個(gè)文件記錄進(jìn)行簡(jiǎn)單介紹。

第11個(gè)文件記錄為$UpCase文件的記錄。該文件包含了一個(gè)大小寫(xiě)字符轉(zhuǎn)換表。

第12個(gè)文件記錄是S$Extendedmetadatadirectory文件的記錄。

第13個(gè)文件記錄是$Extend\$Reparse文件的記錄。

第14個(gè)文件記錄是$Extend\$UsnJrnl文件的記錄。

第15個(gè)文件記錄是$Extend\$Quota文件的記錄。

第16個(gè)文件記錄是$Extend\$ObjId文件的記錄。

第17~23個(gè)文件記錄是系統(tǒng)保留的記錄,暫時(shí)不使用,用于將來(lái)擴(kuò)展。

從第24個(gè)文件記錄開(kāi)始存放用戶(hù)文件的記錄。

3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

2.文件記錄分析

1)文件記錄的結(jié)構(gòu)MFT以文件記錄來(lái)實(shí)現(xiàn)對(duì)文件的管理,每個(gè)文件記錄都對(duì)應(yīng)著不同的文件,大小固定為1KB,也就是占用2個(gè)扇區(qū),而不管簇的大小是多少。

如果一個(gè)文件有很多屬性或被分散成很多碎片,就可能需要多個(gè)文件記錄。這時(shí),存放其文件記錄位置的第一個(gè)記錄就稱(chēng)為“基本文件記錄”。文件記錄在MFT中是物理連續(xù)的,從0開(kāi)始依次按順序編號(hào)。3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

文件記錄由兩部分構(gòu)成:一部分是文件記錄頭;另一部分是屬性列表。文件記錄的結(jié)構(gòu)如表3-6所示。結(jié)構(gòu)說(shuō)明文件記錄頭

屬性1

屬性2

……

結(jié)束標(biāo)志FFFFFFFFH表3-6文件記錄的結(jié)構(gòu)3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

通過(guò)WinHex查看-下$MFT文件的文件記錄,其結(jié)構(gòu)如圖3-50所示。圖3-50$MFT文件的文件記錄的結(jié)構(gòu)3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

2)文件記錄頭

在同一個(gè)系統(tǒng)中,文件記錄頭的長(zhǎng)度和具體偏移地址上的數(shù)據(jù)含義是不變的,而屬性列表是可變的。其不同的屬性有著不同的含義。文件記錄頭如圖3-51所示。文件記錄頭信息的含義如表3-7所示。圖3-51文件記錄頭3.2NTFS下的數(shù)據(jù)恢復(fù)3.2.2

NTFS的結(jié)構(gòu)與分析

文件記錄頭信息的含義如表3-7所示。偏移地址字段長(zhǎng)度/個(gè)字節(jié)含義00H4MFT標(biāo)志,一定為字符“FILE”04H2更新序列號(hào)的偏移地址06H2更新序列號(hào)的大小與數(shù)組,包括第一個(gè)字節(jié)08H8日志文件序列號(hào)10H2序列號(hào)12H2硬連接數(shù),即有多少目錄指向該文件14H2第一個(gè)屬性的偏移地址16H2標(biāo)志:00H表示文件被刪除;01H表示文件正在使用;02H表示目錄被刪除;03H表示目錄正在使用18H4文件記錄的實(shí)際長(zhǎng)度1CH4文件記錄的分配長(zhǎng)度20H8基本文件記錄中的文件索引號(hào)28H2下一個(gè)屬性ID。如果增加新的屬性,將該位分配給新屬性,然后該值增加;如果MFT記錄重新使用,則將它置02AH2邊界,WindowsXP中為30H處2CH4文件記錄編號(hào),WindowsXP中使用,Windows2000中無(wú)此參數(shù)30H2更新序列號(hào)32H4更新數(shù)組表3-7文件記錄頭各字段的含

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論