第6章 ExFAT文件系統(tǒng)數(shù)據(jù)恢復(fù)PPT課件.pptx_第1頁(yè)
第6章 ExFAT文件系統(tǒng)數(shù)據(jù)恢復(fù)PPT課件.pptx_第2頁(yè)
第6章 ExFAT文件系統(tǒng)數(shù)據(jù)恢復(fù)PPT課件.pptx_第3頁(yè)
第6章 ExFAT文件系統(tǒng)數(shù)據(jù)恢復(fù)PPT課件.pptx_第4頁(yè)
第6章 ExFAT文件系統(tǒng)數(shù)據(jù)恢復(fù)PPT課件.pptx_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第6章 ExFAT文件系統(tǒng)數(shù)據(jù)恢復(fù),1,ExFAT文件系統(tǒng)也稱(chēng)為擴(kuò)展文件分配表文件系統(tǒng),由此也可知它是由FAT文件系統(tǒng)擴(kuò)展而來(lái)。 ExFAT繼承了原FAT類(lèi)文件系統(tǒng)的架構(gòu),使用FAT表、目錄結(jié)構(gòu)等對(duì)數(shù)據(jù)進(jìn)行管理。但ExFAT對(duì)FAT表項(xiàng)進(jìn)行了擴(kuò)展,在FAT32文件系統(tǒng)中,每個(gè)FAT表項(xiàng)雖然占用4個(gè)字節(jié)(32bit),但卻只使用了其中的28bit,所以它管理的簇地址并不能夠達(dá)到32bit的理想上限。ExFAT則啟用了FAT32原來(lái)未使用的4bit,真正使可管理的地址編號(hào)達(dá)到32bit的上限。這是ExFAT文件系統(tǒng)可管理容量增大的一個(gè)原因。 ExFAT對(duì)簇的大小進(jìn)行了擴(kuò)展。早先的FAT類(lèi)文件系統(tǒng),

2、簇的上限為32KB,而ExFAT則將這個(gè)上限擴(kuò)展到32MB。實(shí)際上,理論上這個(gè)上限值可以達(dá)到2的255次方,只不過(guò)微軟將其限制在了32MB以?xún)?nèi)。這也使得ExFAT可管理的容量大大增加。,6.1 ExFAT特性,2,在FAT32中,分區(qū)所占用扇區(qū)數(shù)用4個(gè)字節(jié)表示,ExFAT則使用8個(gè)字節(jié)表示,這也使ExFAT在可管理的分區(qū)大小上有了非常大的突破。不過(guò),由于MBR分區(qū)表的局限性,雖然文件系統(tǒng)本身可以管理超過(guò)2TB的空間,但使用4個(gè)字節(jié)表示扇區(qū)數(shù)的分區(qū)表項(xiàng)最大只能表述到大約2TB,所以使用MBR分區(qū)表表述的分區(qū),即使使用ExFAT文件系統(tǒng),也無(wú)法突破2TB的容量限制。 ExFAT支持更大的單一文件。

3、FAT32中,文件的大小使用4個(gè)字節(jié)表述,可表示的單一文件上限大約為4GB。ExFAT使用8個(gè)字節(jié)對(duì)文件大小進(jìn)行表述,可表示的單一文件大小上限大約為16EB。,3,由于ExFAT仍然屬于FAT類(lèi)文件系統(tǒng),所以它的布局結(jié)構(gòu)總體上仍與FAT12/16/32大同 小異,如圖6.1所示。,6.2 ExFAT布局結(jié)構(gòu),4,ExFAT保持了FAT類(lèi)文件系統(tǒng)的總休架構(gòu),大致分為DBR及其保留扇區(qū)、FAT表和用戶數(shù)據(jù)區(qū)三大部分。DBR及其保留扇區(qū)是FAT表前的區(qū)域,大致可分為三個(gè)部分,一是主引導(dǎo)區(qū)域,二是備份引導(dǎo)區(qū)域,再就是其他保留區(qū)域。主引導(dǎo)區(qū)域通常占用011號(hào)扇區(qū),其中0號(hào)扇區(qū)作為DOS引導(dǎo)記錄,簡(jiǎn)稱(chēng)為D

4、BR;備份引導(dǎo)區(qū)域占用1223號(hào)扇區(qū),其中12號(hào)扇區(qū)是DBR的完整備份;由24號(hào)扇區(qū)開(kāi)始至FAT表前一個(gè)扇區(qū)這部分通常不被使用,我們權(quán)且稱(chēng)其為其他保留區(qū)域。 FAT表區(qū)域由FAT表組成,不同的是,目前01.00版本的ExFAT文件系統(tǒng)通常只有一個(gè)FAT表(事務(wù)ExFAT-TexFAT文件系統(tǒng)有兩個(gè)FAT表),F(xiàn)AT表中的每個(gè)FAT項(xiàng)占用4個(gè)字節(jié),并全部使用這4個(gè)字節(jié)的32個(gè)bit。 用戶數(shù)據(jù)區(qū)則用于存儲(chǔ)用戶數(shù)據(jù)。ExFAT的數(shù)據(jù)區(qū)的起始簇號(hào)也是2,該簇通常由簇位圖文件占用,其位置如圖6.1中所示,該文件的各種信息記錄在根目錄下的一個(gè)0 x81類(lèi)型的目錄項(xiàng)中。跟在簇位圖文件后的是大寫(xiě)轉(zhuǎn)換表文件,

5、其位置如圖6.1中所示,這個(gè)文件的大小是固定的,為5836個(gè)字節(jié)。再后面則是根目錄,這是所有文件及文件夾的入口,其位置如圖6.1中所示。根目錄之后,如圖6.1中所示,是真正的用戶數(shù)據(jù)區(qū)。,5,ExFAT文件系統(tǒng)也將0號(hào)扇區(qū)做為引導(dǎo)記錄扇區(qū),除引導(dǎo)信息外,還記錄著文件系統(tǒng)的各項(xiàng)參數(shù),如分區(qū)大小、FAT表位置及大小、簇起始位置、根目錄起始簇號(hào)、每扇區(qū)大小、每簇扇區(qū)數(shù)等等。ExFAT引導(dǎo)記錄扇區(qū)的主要結(jié)構(gòu)見(jiàn)表6.1。,6.3 ExFAT文件系統(tǒng)的DBR分析,6,7,8,(1) 0 x000 x02:3個(gè)字節(jié),跳轉(zhuǎn)代碼。 (2) 0 x030 x0A:分區(qū)類(lèi)型標(biāo)志,也稱(chēng)為OEM標(biāo)簽,是一個(gè)8字節(jié)的AS

6、CII碼,用以說(shuō)明文件系統(tǒng)的類(lèi)型名稱(chēng),即“45 58 46 41 54”,明文“EXFAT”,剩余未用的字節(jié)使用“20”填充。由于ExFAT與NTFS一樣使用0 x07做為分區(qū)表中的分區(qū)類(lèi)型值,單純由分區(qū)表項(xiàng)中的該值無(wú)法判斷這個(gè)分區(qū)是NTFS分區(qū)還是ExFAT分區(qū),這時(shí)可以通過(guò)引導(dǎo)記錄扇區(qū)中的分區(qū)類(lèi)型標(biāo)志值對(duì)它們進(jìn)行區(qū)分。 (3) 0 x0B0 x3F:53個(gè)字節(jié),全部為“00”。 (4) 0 x400 x47:8個(gè)字節(jié),分區(qū)隱藏扇區(qū)數(shù)。 注意:實(shí)驗(yàn)中發(fā)現(xiàn),該值為當(dāng)前扇區(qū)的物理扇區(qū)號(hào),即使該分區(qū)位于擴(kuò)展分區(qū)內(nèi)也不例外,這點(diǎn)與FAT32或NTFS引導(dǎo)記錄扇區(qū)中“分區(qū)前已用扇區(qū)數(shù)”的描述方法略有不

7、同。,9,(5) 0 x480 x4F:8個(gè)字節(jié),分區(qū)扇區(qū)總數(shù)。 (6) 0 x500 x53:4個(gè)字節(jié),F(xiàn)AT表起始扇區(qū)號(hào),該值為相對(duì)于文件系統(tǒng)0號(hào)扇區(qū)而言。 (7) 0 x540 x57:4個(gè)字節(jié),F(xiàn)AT表扇區(qū)數(shù)。 (8) 0 x580 x5B:4個(gè)字節(jié),首簇起始扇區(qū)號(hào),該值用以描述文件系統(tǒng)中的第1個(gè)簇(即2號(hào)簇)的起始扇區(qū)號(hào)。通常2號(hào)簇分配給簇位圖使用,因此,該值也就是簇位圖的起始扇區(qū)號(hào)。雖然該簇跟在FAT表后,但實(shí)際上它并不一定等于FAT表起始扇區(qū)號(hào)加上FAT表的大小。 (9) 0 x5C0 x5F:4個(gè)字節(jié),分區(qū)內(nèi)的總簇?cái)?shù)。 (10) 0 x600 x63:4個(gè)字節(jié),根目錄起始簇號(hào)。

8、 (11) 0 x640 x67:4個(gè)字節(jié),卷ID。 (12) 0 x680 x69:2個(gè)字節(jié),文件系統(tǒng)版本。 (13)0 x6A0 x6B:2個(gè)字節(jié),卷標(biāo)志。該標(biāo)志用以描述主FAT號(hào)、卷是否干凈等信息。 (14) 0 x6C0 x6C:1個(gè)字節(jié),每扇區(qū)字節(jié)數(shù),表示方法為,假設(shè)此處值為N,則每扇區(qū)大小字節(jié)數(shù)為2的N次方個(gè)字節(jié)。此處的值通常為“09”,即每扇區(qū)大小字節(jié)數(shù)為512。微軟將該處的值限定為最大為12,也就是每扇區(qū)大小字節(jié)數(shù)最大為212 = 4096。,10,(15) 0 x6D0 x6D:1個(gè)字節(jié),每簇扇區(qū)數(shù),表示方法為,假設(shè)此處值為N,則每簇大小扇區(qū)數(shù)為2的N次方個(gè)扇區(qū)。此處值最小為

9、1,最大值取決于每扇區(qū)大小字節(jié)數(shù),因?yàn)镋xFAT的簇大小上限為32MB,也就是225個(gè)字節(jié),所以0 x6C處的值與0 x6D處的值相加不得超過(guò)25。 (16) 0 x6E0 x6E:1個(gè)字節(jié),F(xiàn)AT表個(gè)數(shù),事務(wù)ExFAT中為2個(gè)FAT表,版本01.00只有一個(gè)FAT表。 (17) 0 x6F0 x6F:1個(gè)字節(jié),介質(zhì)描述符。 (18) 0 x700 x70:1個(gè)字節(jié),似乎是卷中已用簇空間的百分比。 (19) 0 x710 x77:7個(gè)字節(jié),保留。 (20) 0 x780 x1FD:390個(gè)字節(jié),引導(dǎo)代碼。 (21) 0 x1FE0 x1FF:2個(gè)字節(jié),有效結(jié)束標(biāo)志“55AA”。如果扇區(qū)大小超過(guò)

10、512個(gè)字節(jié),“55AA”仍然位于扇區(qū)的最后兩個(gè)字節(jié),引導(dǎo)代碼至“55AA”之間可能會(huì)使用“00”進(jìn)行填充。,11,現(xiàn)在,我們來(lái)實(shí)驗(yàn)分析一個(gè)ExFAT文件系統(tǒng)的引導(dǎo)記錄扇區(qū)部分參數(shù),如圖6.2所示。,12,(1) 0 x000 x02: 3個(gè)字節(jié),“EB 76 90”,跳轉(zhuǎn)代碼。 (2) 0 x030 x07:分區(qū)類(lèi)型標(biāo)志,“45 58 46 41 54”,明文“EXFAT”。 (3) 0 x0B0 x3F:53個(gè)字節(jié),全部為“00”。 (4) 0 x400 x47:8個(gè)字節(jié),“3F00000000000000”,分區(qū)起始扇區(qū)號(hào),63。 (5) 0 x480 x4F:8個(gè)字節(jié),“00823E0

11、000000000”,分區(qū)扇區(qū)總數(shù),4096512。 (6) 0 x500 x53:4個(gè)字節(jié),“80000000”,F(xiàn)AT表起始扇區(qū)號(hào),128。 (7) 0 x540 x57:4個(gè)字節(jié),“00020000”,F(xiàn)AT表扇區(qū)數(shù),512。 (8) 0 x580 x5B:4個(gè)字節(jié),“80020000”,數(shù)據(jù)區(qū)起始位置扇區(qū)號(hào),640。 (9) 0 x5C0 x5F:4個(gè)字節(jié),“FEF90000”,卷內(nèi)的總簇?cái)?shù),63998。 (10) 0 x600 x63:4個(gè)字節(jié),“04000000”,根目錄起始簇號(hào),4。 (11) 0 x640 x67:4個(gè)字節(jié),卷ID。 (12) 0 x680 x69:2個(gè)字節(jié),“

12、0001”,文件系統(tǒng)版本,01.00。 (13)0 x6A0 x6B:2個(gè)字節(jié),“0000”,卷標(biāo)志。 (14) 0 x6C0 x6C:1個(gè)字節(jié),“09”,每扇區(qū)字節(jié)數(shù),即扇區(qū)大小為29=512字節(jié)。 (15) 0 x6D0 x6D:1個(gè)字節(jié),“06”,每簇扇區(qū)數(shù),即26=64個(gè)扇區(qū)。 (16) 0 x6E0 x6E:1個(gè)字節(jié),“01”,F(xiàn)AT表個(gè)數(shù),1。 (17) 0 x6F0 x6F:1個(gè)字節(jié),“80”,介質(zhì)描述符。 (18) 0 x700 x70:1個(gè)字節(jié),“00”,卷中已用簇空間的百分比,這是一個(gè)剛剛格式化的文件系統(tǒng),基本尚未使用。 (19) 0 x1FE0 x1FF:2個(gè)字節(jié),有效結(jié)

13、束標(biāo)志“55AA”。,13,如果我們的WinHex已經(jīng)集成了ExFAT的引導(dǎo)扇區(qū)模板,這些參數(shù)也可以使用WinHex模板來(lái)查看。 打開(kāi)WinHex的模板管理器,選擇Boot Sector exFAT模板,如圖6.3所示。,14,雙擊模板后就可以查看ExFAT的DBR信息了,如圖6.4所示。,15,在DBR及其保留扇區(qū)之后是FAT(File Allocation Table)即文件分配表,其具體位置由DBR的BPB參數(shù)中偏移量為50H53H的4個(gè)字節(jié)描述。 在FAT12/16/32中,F(xiàn)AT表不只用于記錄FAT鏈,同時(shí)還用于表示當(dāng)前FAT對(duì)應(yīng)的簇是否被使用:表項(xiàng)為0表示該表項(xiàng)對(duì)應(yīng)的簇未使用,否則

14、為已分配使用。ExFAT文件系統(tǒng)的FAT表則只用于描述FAT鏈,而不再用以說(shuō)明某個(gè)簇的分配情況,簇的分配情況另外使用簇位圖進(jìn)行描述。 FAT32中,雖然每個(gè)FAT表項(xiàng)占用32個(gè)bit,但真正使用的卻只是其中的28個(gè)bit。ExFAT的FAT表項(xiàng)也占用32個(gè)bit,并且全部啟用了這32bit。ExFAT中,F(xiàn)AT項(xiàng)的取值含義見(jiàn)表6.2。,6.4 ExFAT文件系統(tǒng)的FAT表分析,16,17,分區(qū)剛剛格式化后,未被分配使用的FAT項(xiàng)將會(huì)設(shè)置為零,表示該FAT項(xiàng)對(duì)應(yīng)的簇是空閑的。同時(shí),由于ExFAT文件系統(tǒng)的FAT表則只用于描述FAT鏈,而不再用以說(shuō)明某個(gè)簇的分配情況;當(dāng)一個(gè)文件占用多個(gè)簇時(shí),這些簇

15、的簇號(hào)可能是連續(xù)的,也可能是不連續(xù)的;如果文件存放的簇不連續(xù),這些簇的簇號(hào)就以簇鏈的形式登記在FAT表中;而如果文件存放在連續(xù)的簇中,F(xiàn)AT表則不登記這些連續(xù)的簇鏈,這些簇鏈的FAT表項(xiàng)取值也為零。 FAT表的前五個(gè)FAT項(xiàng)通常都有專(zhuān)門(mén)的用途,0號(hào)FAT項(xiàng)用來(lái)存放分區(qū)所在的介質(zhì)類(lèi)型,比如硬盤(pán)的介質(zhì)類(lèi)型為“F8”,那么硬盤(pán)上分區(qū)的FAT表的第一個(gè)FAT項(xiàng)就固定為“F8 FF FF FF”;1號(hào)FAT項(xiàng)一般都固定為“FF FF FF FF”;從2號(hào)表項(xiàng)開(kāi)始每個(gè)FAT表項(xiàng)與數(shù)據(jù)區(qū)中的簇進(jìn)行一對(duì)一的映射,并且ExFAT的第一簇(也就是2號(hào)簇)分配給簇位圖文件,第二簇(也就是3號(hào)簇)分配給大寫(xiě)轉(zhuǎn)換表文件

16、,第三簇(也就是4號(hào)簇)分配給根目錄,所以FAT表的第2、3、4表項(xiàng)一般情況下都為“FF FF FFF FF”。圖6.5為一個(gè)新格式化的ExFAT文件系統(tǒng)的FAT表。,18,由圖中可以看到,2、3、4號(hào)FAT項(xiàng)都寫(xiě)入了結(jié)束標(biāo)記0 xFFFFFFFF,說(shuō)明這三個(gè)FAT項(xiàng)對(duì)應(yīng)的簇分別分配給了三個(gè)文件或目錄。這三個(gè)文件或目錄即簇位圖文件,大寫(xiě)轉(zhuǎn)換表文件和根目錄。,19,分區(qū)在格式化為ExFAT文件系統(tǒng)后,會(huì)創(chuàng)建兩個(gè)元文件,一個(gè)是簇位圖文件$BitMap,一個(gè)是大寫(xiě)轉(zhuǎn)換表文件$UpCase,下面對(duì)這兩個(gè)文件作簡(jiǎn)要分析。,6.5 ExFAT文件系統(tǒng)的元文件分析,20,ExFAT文件系統(tǒng)的FAT表之后就是

17、數(shù)據(jù)區(qū)了,但數(shù)據(jù)區(qū)并不一定緊跟在FAT表之后,F(xiàn)AT表之后可能會(huì)有一些保留區(qū)。數(shù)據(jù)區(qū)的具體開(kāi)始位置由DBR中的“首簇起始扇區(qū)號(hào)”來(lái)確定,而數(shù)據(jù)區(qū)的第一個(gè)簇就是2號(hào)簇,2號(hào)簇一般就分配給簇位圖文件使用。 以一個(gè)剛完成格式化操作的分區(qū)為例,我們觀察其DBR,內(nèi)容如圖6.6所示。偏移58H5BH處可以看到“首簇起始扇區(qū)號(hào)”為384,跳轉(zhuǎn)到384扇區(qū),內(nèi)容如圖6.7所示。,6.5.1 簇位圖文件分析,21,該扇區(qū)只有一個(gè)字節(jié)“07H”,這就是簇位圖文件的內(nèi)容。 簇位圖文件類(lèi)似于NTFS文件系統(tǒng)中的元文件$BitMap,它的作用是用來(lái)管理分區(qū)中簇的使用情況。簇位圖文件中的每一位,映射到數(shù)據(jù)區(qū)中的每一個(gè)簇

18、。如果某個(gè)簇分配給了文件,該簇在簇位圖文件中對(duì)應(yīng)的位就會(huì)被填入“1”,表示該簇已經(jīng)占用;如果簇沒(méi)有被使用,它們?cè)诖匚粓D文件中對(duì)應(yīng)的位就是“0”。 圖6.7中簇位圖文件的內(nèi)容為“07H”,換算成二進(jìn)制等于“00000111”,這8位就對(duì)應(yīng)數(shù)據(jù)區(qū)中的8個(gè)簇,也就是2號(hào)簇到9號(hào)簇這八個(gè)簇。從“00000111”這個(gè)二進(jìn)制序列中我們可以看出2、3、4這三個(gè)簇是被使用的,其它五個(gè)簇未被使用。而2、3、4這三個(gè)簇正是被簇位圖文件、大寫(xiě)轉(zhuǎn)換表文件、根目錄所占用,這與我們前面在FAT表中的描述是一致的。 要計(jì)算某個(gè)簇在位圖中的對(duì)應(yīng)bit,可以將該簇的簇號(hào)減去2,然后用得到的差對(duì)除以8,得到的商即該簇在位圖中的

19、字節(jié)號(hào),余數(shù)為該簇在該字節(jié)中的bit號(hào)。 例如,要計(jì)算12號(hào)簇在位圖中的對(duì)應(yīng)bit位置,計(jì)算方法如下: ( 12 2 ) / 8 = 1. 2 也就是說(shuō),12號(hào)簇在位圖中的對(duì)應(yīng)bit是1號(hào)字節(jié)中的2號(hào)bit。 有關(guān)簇位圖文件的開(kāi)始位置和大小記錄在其目錄項(xiàng)中,目錄項(xiàng)結(jié)構(gòu)見(jiàn)6.6節(jié)。,22,大寫(xiě)轉(zhuǎn)換表文件是ExFAT文件系統(tǒng)中的第二個(gè)元文件,類(lèi)似于NTFS文件系統(tǒng)中的元文件$UpCase。Unicode字母表中每一個(gè)字符在這個(gè)文件中都有一個(gè)對(duì)應(yīng)的條目,用于比較、排序、計(jì)算Hash值等方面。大寫(xiě)轉(zhuǎn)換表文件一般占用數(shù)據(jù)區(qū)中的第二個(gè)簇也就是3號(hào)簇,其內(nèi)容如圖6.8所示。,6.5.2 大寫(xiě)轉(zhuǎn)換表文件分析,

20、圖6.8是大寫(xiě)轉(zhuǎn)換表文件第一個(gè)扇區(qū)的部分內(nèi)容,從圖中可以看出其內(nèi)容都是Unicode字母表中的字符,每一個(gè)字符占用兩個(gè)字節(jié)。 大寫(xiě)轉(zhuǎn)換表文件的大小固定為5836字節(jié)。,23,ExFAT文件系統(tǒng)與其它FAT文件系統(tǒng)一樣,也為分區(qū)中的每個(gè)文件及文件夾(目錄)分配大小為32個(gè)字節(jié)的目錄項(xiàng),用以描述文件或文件夾的屬性、大小、文件(目錄)名、起始簇號(hào)和時(shí)間、日期等信息。分區(qū)根目錄下的文件及文件夾的目錄項(xiàng)存放在根目錄區(qū),分區(qū)子目錄下的文件及文件夾的目錄項(xiàng)存放在數(shù)據(jù)區(qū)相應(yīng)的簇中。 但是,ExFAT文件系統(tǒng)目錄項(xiàng)的結(jié)構(gòu)已不再與FAT32中的目錄項(xiàng)一樣,而是采取了全新的結(jié)構(gòu)。 總體來(lái)講,每個(gè)目錄項(xiàng)可以被分成兩大

21、部分:目錄項(xiàng)類(lèi)型值和目錄項(xiàng)數(shù)據(jù)。目錄項(xiàng)的通用結(jié)構(gòu)見(jiàn)表6.3。,6.6 ExFAT文件系統(tǒng)的目錄項(xiàng)分析,24,根據(jù)目錄項(xiàng)的作用和結(jié)構(gòu)特點(diǎn),可以把目錄項(xiàng)分為四種類(lèi)型: 卷標(biāo)目錄項(xiàng) 簇位圖文件目錄項(xiàng) 大寫(xiě)轉(zhuǎn)換表文件目錄項(xiàng) 用戶文件目錄項(xiàng) 下面分類(lèi)型對(duì)目錄項(xiàng)結(jié)構(gòu)作簡(jiǎn)要介紹。,25,卷標(biāo)就是一個(gè)分區(qū)的名字,可以在格式化時(shí)創(chuàng)建,也可以隨時(shí)修改。ExFAT文件系統(tǒng)把卷標(biāo)當(dāng)做文件,用文件目錄項(xiàng)進(jìn)行管理,并放在根目錄區(qū)中。 卷標(biāo)目錄項(xiàng)占用根目錄下的第一個(gè)目錄項(xiàng)位置,格式化時(shí)如果沒(méi)有設(shè)置卷標(biāo),該目錄項(xiàng)除第一個(gè)字節(jié)為“03”外,其他31個(gè)字節(jié)全部為零,這時(shí)這個(gè)目錄項(xiàng)稱(chēng)為“卷標(biāo)目錄項(xiàng)保留項(xiàng)”,如圖6.9所示。,6.6

22、.1 卷標(biāo)目錄項(xiàng),26,卷標(biāo)目錄項(xiàng)的結(jié)構(gòu)見(jiàn)表6.4。,(1) 0 x000 x00:1個(gè)字節(jié),目錄項(xiàng)類(lèi)型值,對(duì)于卷標(biāo)目錄項(xiàng),該類(lèi)型值為0 x83。(2) 0 x010 x01:1個(gè)字節(jié),卷標(biāo)長(zhǎng)度字符數(shù),理論上要求在11個(gè)之內(nèi),但最多可以達(dá)到15個(gè)。 (3) 0 x020 x17:22個(gè)字節(jié),卷標(biāo),使用Unicode字符,每個(gè)字符占用兩個(gè)字節(jié)。如果長(zhǎng)度超過(guò)11個(gè)字符,卷標(biāo)將占用保留區(qū)。不足11個(gè)字符時(shí),未使用的部分用0填充。(4) 0 x180 x1F:8個(gè)字節(jié),保留,用0填充。 卷標(biāo)目錄項(xiàng)也可以用模板來(lái)查看其結(jié)構(gòu),圖6.10所示卷標(biāo)目錄項(xiàng)用模板顯示結(jié)果如圖6.11所示。,27,28,ExFAT

23、用一個(gè)簇位圖來(lái)描述每個(gè)簇的分配情況,并在根目錄下建立一個(gè)類(lèi)型值為0 x81的簇位圖目錄項(xiàng)來(lái)描述它的位置及大小,這個(gè)目錄項(xiàng)占用根目錄下的第二個(gè)目錄項(xiàng)位置。某ExFAT分區(qū)簇位圖文件目錄項(xiàng)如圖6.12所示。,6.6.2簇位圖文件目錄項(xiàng),簇位圖文件目錄項(xiàng)各字節(jié)含義見(jiàn)表6.5。,29,(1)簇位圖文件的起始簇號(hào)一般都為2。 (2)簇位圖文件的目錄項(xiàng)中不記錄時(shí)間戳。 下面用WinHex模板查看圖6.12所示簇位圖文件目錄項(xiàng)的結(jié)構(gòu),如圖6.13所示。,30,在ExFAT中,文件屬性目錄項(xiàng)中記錄文件名時(shí)會(huì)產(chǎn)生一個(gè)文件名校驗(yàn),文件名參加校驗(yàn)時(shí)需要先將文件名進(jìn)行大寫(xiě)轉(zhuǎn)換后再進(jìn)行計(jì)算。為此,ExFAT用一個(gè)表存儲(chǔ)

24、大寫(xiě)轉(zhuǎn)換信息,并在根目錄下建立一個(gè)類(lèi)型值為0 x82的大寫(xiě)轉(zhuǎn)換表目錄項(xiàng),描述它的起始位置及大小,這個(gè)目錄項(xiàng)位于根目錄下的第3個(gè)目錄項(xiàng)位置。某ExFAT分區(qū)簇位圖文件目錄項(xiàng)如圖6.14示。,6.6.3 大寫(xiě)轉(zhuǎn)換表文件目錄項(xiàng),31,大寫(xiě)轉(zhuǎn)換表文件目錄項(xiàng)各字節(jié)含義見(jiàn)表6.6。,(1)大寫(xiě)轉(zhuǎn)換表的起始簇號(hào)一般都為3。 (2)大寫(xiě)轉(zhuǎn)換表的大小字節(jié)數(shù),固定為5836個(gè)字節(jié)。 下面用WinHex模板查看圖6.14所示大寫(xiě)轉(zhuǎn)換表文件目錄項(xiàng)的結(jié)構(gòu),如圖6.15所示。,32,ExFAT文件系統(tǒng)中每個(gè)用戶文件至少有三個(gè)目錄項(xiàng),這三個(gè)目錄項(xiàng)被稱(chēng)為三個(gè)屬性:第一個(gè)目錄項(xiàng)稱(chēng)為“屬性1”,目錄項(xiàng)首字節(jié)的特征值為“85H”;

25、第二個(gè)目錄項(xiàng)稱(chēng)為“屬性2”,目錄項(xiàng)首字節(jié)的特征值為“C0H”;第三個(gè)目錄項(xiàng)稱(chēng)為“屬性3”,目錄項(xiàng)首字節(jié)的特征值為“C1H”。 (1)“屬性1”目錄項(xiàng) “屬性1”目錄項(xiàng)用來(lái)記錄該目錄項(xiàng)的附屬目錄項(xiàng)數(shù)、校驗(yàn)和、文件屬性、時(shí)間戳等信息。用戶文件的“屬性1”目錄項(xiàng)如圖6.16所示。,6.6.4用戶文件目錄項(xiàng),33,用戶文件的“屬性1”目錄項(xiàng)中各字節(jié)含義見(jiàn)表6.7。,34,0 x010 x02:附屬目錄項(xiàng)數(shù)。該參數(shù)指除此目錄項(xiàng)外,該文件還有幾個(gè)目錄項(xiàng),當(dāng)前值為2,說(shuō)明這個(gè)文件除了“屬性1”目錄項(xiàng)外,后面還有兩個(gè)目錄項(xiàng),也就是“屬性2”目錄項(xiàng)和“屬性3”目錄項(xiàng)。 0 x020 x03:校驗(yàn)和。該參數(shù)是校驗(yàn)

26、算法算出來(lái)的目錄項(xiàng)的校驗(yàn)和。 0 x040 x07:文件屬性。該參數(shù)描述文件的常規(guī)屬性,屬性具體含義見(jiàn)表6.8。,35,下面用WinHex模板查看圖6.16所示用戶文件“屬性1”目錄項(xiàng)的結(jié)構(gòu),如圖6.17所示。,36,(2)“屬性2:目錄項(xiàng) “屬性2“目錄項(xiàng)用來(lái)記錄文件是否有碎片、文件名的字符數(shù)、文件名的Hash值、文件的起始簇號(hào)及大小等信息。 用戶文件的“屬性2”目錄項(xiàng)如圖6.18所示。,37,用戶文件的“屬性2”目錄項(xiàng)中各字節(jié)含義見(jiàn)表6.8。,38,0 x010 x01:文件碎片標(biāo)志。該參數(shù)反映文件是否連續(xù)存放。如果是連續(xù)存放沒(méi)有碎片,該標(biāo)志為03H,如果不連續(xù)存放,文件有碎片,該標(biāo)志為0

27、1H。 0 x030 x03:文件名字符數(shù)。該參數(shù)用來(lái)說(shuō)明文件名的長(zhǎng)度,ExFAT文件系統(tǒng)的文件名用Unicode碼表示,每個(gè)字符占用兩個(gè)字節(jié)。 0 x040 x05:文件名Hash值。該參數(shù)根據(jù)相應(yīng)算法算出文件名的校驗(yàn)值,當(dāng)文件名發(fā)生改變時(shí),Hash值也發(fā)生相應(yīng)的變化,但當(dāng)文件移動(dòng)時(shí),該值不變。 0 x080 x0F:文件大小1。該參數(shù)是文件的總字節(jié)數(shù),用64位記錄文件大小。 0 x140 x17:起始簇號(hào)。該參數(shù)描述文件的起始簇號(hào)。 0 x180 x1F:文件大小2.該參數(shù)也是文件的總字節(jié)數(shù),是為NTFS文件系統(tǒng)的壓縮屬性準(zhǔn)備的,一般情況下與“文件大小1”保持一致。,39,下面用WinHe

28、x模板查看圖6.18所示用戶文件“屬性2”目錄項(xiàng)的結(jié)構(gòu),如圖6.19所示。,40,(3)“屬性3”目錄項(xiàng) “屬性3”目錄項(xiàng)用來(lái)具體記錄文件的名稱(chēng)。如果文件名很長(zhǎng),“屬性3”可以包含多個(gè)目錄項(xiàng),每個(gè)目錄項(xiàng)稱(chēng)為一個(gè)片段,從上至下依次記錄文件名的每一個(gè)字符。,41,用戶文件的“屬性3”目錄項(xiàng)中各字節(jié)含義見(jiàn)表6.9。,42,因?yàn)樵撐募芏?,所以只有一個(gè)片段。 下面再看一個(gè)文件,文件名為“shu-ju-hui-fu-zhao-zhen-zhou-zheng-fa-xue-yuan.txt”,其目錄項(xiàng)如圖6.22所示。,43,從圖6.22和圖6.23中可以看出該文件有6個(gè)目錄項(xiàng),一個(gè)“屬性1”目錄項(xiàng)、一

29、個(gè)“屬性2”目錄項(xiàng)、四個(gè)“屬性3”目錄項(xiàng)。,44,6.7.1 根目錄的管理 第1步,定位DBR,通過(guò)引導(dǎo)扇區(qū)模板,查看根目錄首簇。引導(dǎo)扇區(qū)模板如圖6.24所示。,6.7 ExFAT文件系統(tǒng)根目錄與子目錄的管理,45,第2步,通過(guò)文件名定位目標(biāo)文件的目錄項(xiàng)。從圖6.24可以看出根目錄首簇號(hào)為4,跳轉(zhuǎn)到4號(hào)簇,通過(guò)文件名定位目標(biāo)文件的目錄項(xiàng)(如圖6.25所示),并用用戶文件目錄項(xiàng)模板查看,如圖6.26所示。,46,47,第3步,定位FAT表和簇位圖文件,查看文件存放簇鏈。因?yàn)槲募est.txt存放的起始簇號(hào)為5,所以我們定位到FAT表查看5號(hào)FAT項(xiàng)的數(shù)據(jù),從圖6.24 引導(dǎo)扇區(qū)模板我們可以看出

30、FAT表在128號(hào)扇區(qū),跳轉(zhuǎn)到128號(hào)扇區(qū),F(xiàn)AT表內(nèi)如如圖6.27所示。,從圖6.28可以看出,該文件目前只有一個(gè)字節(jié)的數(shù)據(jù)“0F”,換算為二進(jìn)制“00001111”,說(shuō)明2、3、4、5這四個(gè)簇目前被使用,其中2、3、4簇分別被簇位圖文件、大寫(xiě)轉(zhuǎn)換表文件和根目錄占用,5號(hào)簇就是被test.txt文件占用。,48,第4步,定位數(shù)據(jù)區(qū)。通過(guò)上一步我們得出test.txt文件僅占用1個(gè)簇,即5號(hào)簇,下面我們定位到5號(hào)簇,查看其內(nèi)容,如圖6.29所示。,因?yàn)槲募笮?4個(gè)字節(jié),所以從第一個(gè)字節(jié)開(kāi)始連續(xù)的44個(gè)字節(jié)即是文件test.txt文件的內(nèi)容。 以上就是ExFAT文件系統(tǒng)對(duì)根目錄下文件的管理。

31、,49,I盤(pán)的根目錄下有個(gè)文件夾“123”,文件夾“123”下面有一個(gè)文件“數(shù)據(jù)恢復(fù).txt”,下面我們看看ExFAT文件系統(tǒng)是如何管理子目錄及子目錄下的文件的。 首先通過(guò)WinHex查看文件夾“123”的目錄項(xiàng),如圖6.30所示。,6.7.2 子目錄的管理,50,該目錄項(xiàng)各字節(jié)的含義見(jiàn)其模板,如圖6.31所示。,51,以6.7.1節(jié)分析的“test.txt”文件為例,看看其被刪除后的底層變化及恢復(fù)的方法。 “test.txt”文件的目錄項(xiàng)及其內(nèi)容參看圖6.25、圖6.26及圖6.29?,F(xiàn)在我們將文件“test.txt”徹底刪除。 刪除后文件的目錄項(xiàng)如圖6.35所示。,6.8 ExFAT文件系

32、統(tǒng)刪除文件的分析,52,經(jīng)過(guò)與圖6.25中該文件刪除前的目錄項(xiàng)的對(duì)比,可以發(fā)現(xiàn)文件刪除后只是目錄項(xiàng)的首字節(jié)發(fā)生了變化,由原來(lái)的“85H”、“C0H”、“C1H”改變?yōu)椤?5H”、“40H”、“41H”,其它字節(jié)沒(méi)有任何改變,文件的起始簇號(hào)、文件大小、文件名等關(guān)鍵信息都完好地存在。 該文件存放在5號(hào)簇,現(xiàn)在跳轉(zhuǎn)到5號(hào)簇,其內(nèi)容如圖6.36所示。,53,通過(guò)對(duì)比圖6.29和圖6.36的內(nèi)容,我們發(fā)現(xiàn)5號(hào)簇的內(nèi)容也就是文件的內(nèi)容沒(méi)有任何變化,這就說(shuō)明了刪除文件并沒(méi)有清空其數(shù)據(jù)區(qū)。 因?yàn)槲募皌est.txt”只占用一個(gè)簇,不可能有碎片,所以其在FAT表中也就沒(méi)有登記項(xiàng),文件刪除前后FAT表中5號(hào)表項(xiàng)

33、都為“00 00 00 00”。但文件刪除后,文件所占用的5號(hào)簇會(huì)被釋放,以便其它文件使用,所以該文件在簇位圖文件中對(duì)應(yīng)的位會(huì)被清零,“test.txt”文件刪除后,分區(qū)的簇位圖文件如圖6.37所示。,54,從圖6.37可以看出文件刪除后簇位圖文件的內(nèi)容變成了“37”,把十六進(jìn)制的“37”轉(zhuǎn)換成二進(jìn)制為“00110111”,5號(hào)簇所對(duì)應(yīng)的二進(jìn)制位已經(jīng)由“1”變成了“0”,說(shuō)明5號(hào)簇被釋放。 通過(guò)前面的分析,我們知道文件刪除后文件名、起始簇號(hào)、大小及數(shù)據(jù)內(nèi)容都沒(méi)有變化,所以只要根據(jù)這些信息定位到文件的內(nèi)容并另外保存即可恢復(fù)刪除的文件。 通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),即使文件沒(méi)有連續(xù)存放,也就是文件在FAT表中有

34、簇鏈,當(dāng)文件刪除后,文件所對(duì)應(yīng)的簇鏈也不會(huì)被清空,所以不管文件是否連續(xù)存放,其恢復(fù)的方法是一致的。,55,6.9.1 格式化的底層分析 格式化就是給分區(qū)創(chuàng)建一個(gè)文件系統(tǒng)。首先看一個(gè)有數(shù)據(jù)的ExFAT分區(qū),然后將其格式化,分析格式化前后原來(lái)數(shù)據(jù)的變化。 圖6.38是一個(gè)ExFAT分區(qū)“I”中的數(shù)據(jù),有兩個(gè)文本文件和一個(gè)文件夾。,6.9 ExFAT文件系統(tǒng)誤格式化的分析,56,下面我們?cè)赪inHex下打開(kāi)該分區(qū)的FAT表,F(xiàn)AT表的位置通過(guò)DBR參數(shù)獲得。當(dāng)前分區(qū)I的FAT表如圖6.40所示。,57,簇位圖文件的位置也可以通過(guò)DBR參數(shù)獲得,一般在2號(hào)簇。分區(qū)I的簇位圖文件內(nèi)容如圖6.41所示。,

35、58,分區(qū)I根目錄也就是4號(hào)簇的內(nèi)容如圖6.42所示。,59,文件夾“abc”下的文件“333.txt”的目錄項(xiàng)如圖6.43所示。,60,61,62,通過(guò)前面的分析知道,ExFAT文件系統(tǒng)格式化后,F(xiàn)AT表第一個(gè)扇區(qū)中用戶文件的簇鏈會(huì)被清零,根目錄的用戶文件目錄項(xiàng)也被清零,所以根目錄下的文件就很難被恢復(fù)了,因?yàn)闆](méi)有目錄項(xiàng)就無(wú)法知道原有文件的文件名及它們存放的位置。但不是絕對(duì)不能恢復(fù),因?yàn)楦袷交遣黄茐挠脩粑募臄?shù)據(jù)區(qū)的,利用用戶文件頭部特征及文件內(nèi)容特征還是有可能恢復(fù)的。 子目錄下的文件目錄項(xiàng)沒(méi)有遭到任何破壞。如果文件是連續(xù)存放的,那么子目錄下的文件是完全能夠恢復(fù)的。我們只需根據(jù)文件名定位文件目錄項(xiàng),再根據(jù)文件目錄項(xiàng)獲取文件起始簇號(hào)和文件大小信息,最后到數(shù)據(jù)區(qū)選中相應(yīng)數(shù)據(jù)另存到

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論