收藏 分销(赏)

第6章-ExFAT文件系统数据恢复.ppt

上传人:w****g 文档编号:10284993 上传时间:2025-05-15 格式:PPT 页数:75 大小:2.71MB
下载 相关 举报
第6章-ExFAT文件系统数据恢复.ppt_第1页
第1页 / 共75页
第6章-ExFAT文件系统数据恢复.ppt_第2页
第2页 / 共75页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,6,章,ExFAT,文件系统数据恢复,ExFAT,文件系统也称为扩展文件分配表文件系统,由此也可知它是由,FAT,文件系统扩展而来。,ExFAT,继承了原,FAT,类文件系统的架构,使用,FAT,表、目录结构等对数据进行管理。但,ExFAT,对,FAT,表项进行了扩展,在,FAT32,文件系统中,每个,FAT,表项虽然占用,4,个字节,(32bit),,但却只使用了其中的,28bit,,所以它管理的簇地址并不能够达到,32bit,的理想上限。,ExFAT,则启用了,FAT32,原来未使用的,4bit,,真正使可管理的地址编号达到,32bit,的上限。这是,ExFAT,文件系统可管理容量增大的一个原因。,ExFAT,对簇的大小进行了扩展。早先的,FAT,类文件系统,簇的上限为,32KB,,而,ExFAT,则将这个上限扩展到,32MB,。实际上,理论上这个上限值可以达到,2,的,255,次方,只不过微软将其限制在了,32MB,以内。这也使得,ExFAT,可管理的容量大大增加。,6.1,ExFAT,特性,在,FAT32,中,分区所占用扇区数用,4,个字节表示,,ExFAT,则使用,8,个字节表示,这也使,ExFAT,在可管理的分区大小上有了非常大的突破。不过,由于,MBR,分区表的局限性,虽然文件系统本身可以管理超过,2TB,的空间,但使用,4,个字节表示扇区数的分区表项最大只能表述到大约,2TB,,所以使用,MBR,分区表表述的分区,即使使用,ExFAT,文件系统,也无法突破,2TB,的容量限制。,ExFAT,支持更大的单一文件。,FAT32,中,文件的大小使用,4,个字节表述,可表示的单一文件上限大约为,4GB,。,ExFAT,使用,8,个字节对文件大小进行表述,可表示的单一文件大小上限大约为,16EB,。,由于,ExFAT,仍然属于,FAT,类文件系统,所以它的布局结构总体上仍与,FAT12/16/32,大同,小异,如图,6.1,所示。,6.2,ExFAT,布局结构,ExFAT,保持了,FAT,类文件系统的总休架构,大致分为,DBR,及其保留扇区、,FAT,表和用户数据区三大部分。,DBR,及其保留扇区是,FAT,表前的区域,大致可分为三个部分,一是主引导区域,二是备份引导区域,再就是其他保留区域。主引导区域通常占用,011,号扇区,其中,0,号扇区作为,DOS,引导记录,简称为,DBR,;备份引导区域占用,1223,号扇区,其中,12,号扇区是,DBR,的完整备份;由,24,号扇区开始至,FAT,表前一个扇区这部分通常不被使用,我们权且称其为其他保留区域。,FAT,表区域由,FAT,表组成,不同的是,目前,01.00,版本的,ExFAT,文件系统通常只有一个,FAT,表,(,事务,ExFAT,-,TexFAT,文件系统有两个,FAT,表,),,,FAT,表中的每个,FAT,项占用,4,个字节,并全部使用这,4,个字节的,32,个,bit,。,用户数据区则用于存储用户数据。,ExFAT,的数据区的起始簇号也是,2,,该簇通常由簇位图文件占用,其位置如图,6.1,中所示,该文件的各种信息记录在根目录下的一个,0 x81,类型的目录项中。跟在簇位图文件后的是大写转换表文件,其位置如图,6.1,中所示,这个文件的大小是固定的,为,5836,个字节。再后面则是根目录,这是所有文件及文件夹的入口,其位置如图,6.1,中所示。根目录之后,如图,6.1,中所示,是真正的用户数据区。,ExFAT,文件系统也将,0,号扇区做为引导记录扇区,除引导信息外,还记录着文件系统的各项参数,如分区大小、,FAT,表位置及大小、簇起始位置、根目录起始簇号、每扇区大小、每簇扇区数等等。,ExFAT,引导记录扇区的主要结构见表,6.1,。,6.3,ExFAT,文件系统的,DBR,分析,(1)0 x00,0 x02,:,3,个字节,跳转代码。,(2)0 x03,0 x0A,:分区类型标志,也称为,OEM,标签,是一个,8,字节的,ASCII,码,用以说明文件系统的类型名称,即,“45 58 46 41 54”,,明文,“EXFAT”,,剩余未用的字节使用,“20”,填充。由于,ExFAT,与,NTFS,一样使用,0 x07,做为分区表中的分区类型值,单纯由分区表项中的该值无法判断这个分区是,NTFS,分区还是,ExFAT,分区,这时可以通过引导记录扇区中的分区类型标志值对它们进行区分。,(3)0 x0B,0 x3F,:,53,个字节,全部为,“00”,。,(4)0 x40,0 x47,:,8,个字节,分区隐藏扇区数。,注意:,实验中发现,该值为当前扇区的物理扇区号,即使该分区位于扩展分区内也不例外,这点与,FAT32,或,NTFS,引导记录扇区中,“,分区前已用扇区数,”,的描述方法略有不同。,(5)0 x48,0 x4F,:,8,个字节,分区扇区总数。,(6)0 x50,0 x53,:,4,个字节,,FAT,表起始扇区号,该值为相对于文件系统,0,号扇区而言。,(7)0 x54,0 x57,:,4,个字节,,FAT,表扇区数。,(8)0 x58,0 x5B,:,4,个字节,首簇起始扇区号,该值用以描述文件系统中的第,1,个簇(即,2,号簇)的起始扇区号。通常,2,号簇分配给簇位图使用,因此,该值也就是簇位图的起始扇区号。虽然该簇跟在,FAT,表后,但实际上它并不一定等于,FAT,表起始扇区号加上,FAT,表的大小。,(9)0 x5C,0 x5F,:,4,个字节,分区内的总簇数。,(10)0 x60,0 x63,:,4,个字节,根目录起始簇号。,(11)0 x64,0 x67,:,4,个字节,卷,ID,。,(12)0 x68,0 x69,:,2,个字节,文件系统版本。,(13)0 x6A,0 x6B,:,2,个字节,卷标志。该标志用以描述主,FAT,号、卷是否干净等信息。,(14)0 x6C,0 x6C,:,1,个字节,每扇区字节数,表示方法为,假设此处值为,N,,则每扇区大小字节数为,2,的,N,次方个字节。此处的值通常为,“09”,,即每扇区大小字节数为,512,。微软将该处的值限定为最大为,12,,也就是每扇区大小字节数最大为,212=4096,。,(15)0 x6D,0 x6D,:,1,个字节,每簇扇区数,表示方法为,假设此处值为,N,,则每簇大小扇区数为,2,的,N,次方个扇区。此处值最小为,1,,最大值取决于每扇区大小字节数,因为,ExFAT,的簇大小上限为,32MB,,也就是,2,25,个字节,所以,0 x6C,处的值与,0 x6D,处的值相加不得超过,25,。,(16)0 x6E,0 x6E,:,1,个字节,,FAT,表个数,事务,ExFAT,中为,2,个,FAT,表,版本,01.00,只有一个,FAT,表。,(17)0 x6F,0 x6F,:,1,个字节,介质描述符。,(18)0 x70,0 x70,:,1,个字节,似乎是卷中已用簇空间的百分比。,(19)0 x71,0 x77,:,7,个字节,保留。,(20)0 x78,0 x1FD,:,390,个字节,引导代码。,(21)0 x1FE,0 x1FF,:,2,个字节,有效结束标志,“55AA”,。如果扇区大小超过,512,个字节,,“55AA”,仍然位于扇区的最后两个字节,引导代码至,“55AA”,之间可能会使用,“00”,进行填充。,现在,我们来实验分析一个,ExFAT,文件系统的引导记录扇区部分参数,如图,6.2,所示。,(1)0 x00,0 x02,:,3,个字节,,“EB 76 90”,,跳转代码。,(2)0 x03,0 x07,:分区类型标志,,“45 58 46 41 54”,,明文,“EXFAT”,。,(3)0 x0B,0 x3F,:,53,个字节,全部为,“00”,。,(4)0 x40,0 x47,:,8,个字节,,“3F00000000000000”,,分区起始扇区号,,63,。,(5)0 x48,0 x4F,:,8,个字节,,“00823E0000000000”,,分区扇区总数,,4096512,。,(6)0 x50,0 x53,:,4,个字节,,“80000000”,,,FAT,表起始扇区号,,128,。,(7)0 x54,0 x57,:,4,个字节,,“00020000”,,,FAT,表扇区数,,512,。,(8)0 x58,0 x5B,:,4,个字节,,“80020000”,,数据区起始位置扇区号,,640,。,(9)0 x5C,0 x5F,:,4,个字节,,“FEF90000”,,卷内的总簇数,,63998,。,(10)0 x60,0 x63,:,4,个字节,,“04000000”,,根目录起始簇号,,4,。,(11)0 x64,0 x67,:,4,个字节,卷,ID,。,(12)0 x68,0 x69,:,2,个字节,,“0001”,,文件系统版本,,01.00,。,(13)0 x6A,0 x6B,:,2,个字节,,“0000”,,卷标志。,(14)0 x6C,0 x6C,:,1,个字节,,“09”,,每扇区字节数,即扇区大小为,2,9,=512,字节。,(15)0 x6D,0 x6D,:,1,个字节,,“06”,,每簇扇区数,即,2,6,=64,个扇区。,(16)0 x6E,0 x6E,:,1,个字节,,“01”,,,FAT,表个数,,1,。,(17)0 x6F,0 x6F,:,1,个字节,,“80”,,介质描述符。,(18)0 x70,0 x70,:,1,个字节,,“00”,,卷中已用簇空间的百分比,这是一个刚刚格式化的文件系统,基本尚未使用。,(19)0 x1FE,0 x1FF,:,2,个字节,有效结束标志,“55AA”,。,如果我们的,WinHex,已经集成了,ExFAT,的引导扇区模板,这些参数也可以使用,WinHex,模板来查看。,打开,WinHex,的模板管理器,选择,Boot Sector,exFAT,模板,如图,6.3,所示。,双击模板后就可以查看,ExFAT,的,DBR,信息了,如图,6.4,所示。,在,DBR,及其保留扇区之后是,FAT,(,File Allocation Table,)即文件分配表,其具体位置由,DBR,的,BPB,参数中偏移量为,50H53H,的,4,个字节描述。,在,FAT12/16/32,中,,FAT,表不只用于记录,FAT,链,同时还用于表示当前,FAT,对应的簇是否被使用:表项为,0,表示该表项对应的簇未使用,否则为已分配使用。,ExFAT,文件系统的,FAT,表则只用于描述,FAT,链,而不再用以说明某个簇的分配情况,簇的分配情况另外使用簇位图进行描述。,FAT32,中,虽然每个,FAT,表项占用,32,个,bit,,但真正使用的却只是其中的,28,个,bit,。,ExFAT,的,FAT,表项也占用,32,个,bit,,并且全部启用了这,32bit,。,ExFAT,中,,FAT,项的取值含义见表,6.2,。,6.4,ExFAT,文件系统的,FAT,表分析,分区刚刚格式化后,未被分配使用的,FAT,项将会设置为零,表示该,FAT,项对应的簇是空闲的。同时,由于,ExFAT,文件系统的,FAT,表则只用于描述,FAT,链,而不再用以说明某个簇的分配情况;当一个文件占用多个簇时,这些簇的簇号可能是连续的,也可能是不连续的;如果文件存放的簇不连续,这些簇的簇号就以簇链的形式登记在,FAT,表中;而如果文件存放在连续的簇中,,FAT,表则不登记这些连续的簇链,这些簇链的,FAT,表项取值也为零。,FAT,表的前五个,FAT,项通常都有专门的用途,,0,号,FAT,项用来存放分区所在的介质类型,比如硬盘的介质类型为“,F8”,,那么硬盘上分区的FAT,表的第一个,FAT,项就固定为“,F8 FF,FF,FF,”;,1,号,FAT,项一般都固定为“,FF,FF,FF,FF,”;从,2,号表项开始每个,FAT,表项与数据区中的簇进行一对一的映射,并且,ExFAT,的第一簇,(,也就是,2,号簇,),分配给簇位图文件,第二簇(也就是,3,号簇)分配给大写转换表文件,第三簇(也就是,4,号簇)分配给根目录,所以,FAT,表的第,2,、,3,、,4,表项一般情况下都为“,FF,FF,FFF FF,”。图,6.5,为一个新格式化的,ExFAT,文件系统的,FAT,表。,由图中可以看到,,2,、,3,、,4,号,FAT,项都写入了结束标记,0 xFFFFFFFF,,说明这三个,FAT,项对应的簇分别分配给了三个文件或目录。这三个文件或目录即簇位图文件,大写转换表文件和根目录。,分区在格式化为,ExFAT,文件系统后,会创建两个元文件,一个是簇位图文件,$,BitMap,,一个是大写转换表文件,$,UpCase,,下面对这两个文件作简要分析。,6.5,ExFAT,文件系统的元文件分析,ExFAT,文件系统的,FAT,表之后就是数据区了,但数据区并不一定紧跟在,FAT,表之后,,FAT,表之后可能会有一些保留区。数据区的具体开始位置由,DBR,中的“首簇起始扇区号”来确定,而数据区的第一个簇就是,2,号簇,,2,号簇一般就分配给簇位图文件使用。,以一个刚完成格式化操作的分区为例,我们观察其,DBR,,内容如图,6.6,所示。偏移,58H5BH,处可以看到“首簇起始扇区号”为,384,,跳转到,384,扇区,内容如图,6.7,所示。,6.5.1,簇位图文件分析,该扇区只有一个字节“,07H,”,这就是簇位图文件的内容。,簇位图文件类似于,NTFS,文件系统中的元文件,$,BitMap,,它的作用是用来管理分区中簇的使用情况。簇位图文件中的每一位,映射到数据区中的每一个簇。如果某个簇分配给了文件,该簇在簇位图文件中对应的位就会被填入“,1,”,表示该簇已经占用;如果簇没有被使用,它们在簇位图文件中对应的位就是“,0,”。,图,6.7,中簇位图文件的内容为“,07H,”,换算成二进制等于“,00000111,”,这,8,位就对应数据区中的,8,个簇,也就是,2,号簇到,9,号簇这八个簇。从“,00000111,”这个二进制序列中我们可以看出,2,、,3,、,4,这三个簇是被使用的,其它五个簇未被使用。而,2,、,3,、,4,这三个簇正是被簇位图文件、大写转换表文件、根目录所占用,这与我们前面在,FAT,表中的描述是一致的。,要计算某个簇在位图中的对应,bit,,可以将该簇的簇号减去,2,,然后用得到的差对除以,8,,得到的商即该簇在位图中的字节号,余数为该簇在该字节中的,bit,号。,例如,要计算,12,号簇在位图中的对应,bit,位置,计算方法如下:,(12 2)/8=1.2,也就是说,,12,号簇在位图中的对应,bit,是,1,号字节中的,2,号,bit,。,有关簇位图文件的开始位置和大小记录在其目录项中,目录项结构见,6.6,节。,大写转换表文件是,ExFAT,文件系统中的第二个元文件,类似于,NTFS,文件系统中的元文件,$,UpCase,。,Unicode,字母表中每一个字符在这个文件中都有一个对应的条目,用于比较、排序、计算,Hash,值等方面。大写转换表文件一般占用数据区中的第二个簇也就是,3,号簇,其内容如图,6.8,所示。,6.5.2,大写转换表文件分析,图,6.8,是大写转换表文件第一个扇区的部分内容,从图中可以看出其内容都是,Unicode,字母表中的字符,每一个字符占用两个字节。,大写转换表文件的大小固定为,5836,字节。,ExFAT,文件系统与其它,FAT,文件系统一样,也为分区中的每个文件及文件夹(目录)分配大小为,32,个字节的目录项,用以描述文件或文件夹的属性、大小、文件(目录)名、起始簇号和时间、日期等信息。分区根目录下的文件及文件夹的目录项存放在根目录区,分区子目录下的文件及文件夹的目录项存放在数据区相应的簇中。,但是,,ExFAT,文件系统目录项的结构已不再与,FAT32,中的目录项一样,而是采取了全新的结构。,总体来讲,每个目录项可以被分成两大部分:目录项类型值和目录项数据。目录项的通用结构见表,6.3,。,6.6,ExFAT,文件系统的目录项分析,根据目录项的作用和结构特点,可以把目录项分为四种类型:,卷标目录项,簇位图文件目录项,大写转换表文件目录项,用户文件目录项,下面分类型对目录项结构作简要介绍。,卷标就是一个分区的名字,可以在格式化时创建,也可以随时修改。,ExFAT,文件系统把卷标当做文件,用文件目录项进行管理,并放在根目录区中。,卷标目录项占用根目录下的第一个目录项位置,格式化时如果没有设置卷标,该目录项除第一个字节为“,03,”外,其他,31,个字节全部为零,这时这个目录项称为“卷标目录项保留项”,如图,6.9,所示。,6.6.1,卷标目录项,卷标目录项的结构见表,6.4,。,(1)0 x00,0 x00,:,1,个字节,目录项类型值,对于卷标目录项,该类型值为,0 x83,。,(2)0 x01,0 x01,:,1,个字节,卷标长度字符数,理论上要求在,11,个之内,但最多可以达到,15,个。,(3)0 x02,0 x17,:,22,个字节,卷标,使用,Unicode,字符,每个字符占用两个字节。如果长度超过,11,个字符,卷标将占用保留区。不足,11,个字符时,未使用的部分用,0,填充。,(4)0 x18,0 x1F,:,8,个字节,保留,用,0,填充。,卷标目录项也可以用模板来查看其结构,图,6.10,所示卷标目录项用模板显示结果如图,6.11,所示。,ExFAT,用一个簇位图来描述每个簇的分配情况,并在根目录下建立一个类型值为,0 x81,的簇位图目录项来描述它的位置及大小,这个目录项占用根目录下的第二个目录项位置。某,ExFAT,分区簇位图文件目录项如图,6.12,所示。,6.6.2,簇位图文件目录项,簇位图文件目录项各字节含义见表,6.5,。,(,1,)簇位图文件的起始簇号一般都为,2,。,(,2,)簇位图文件的目录项中不记录时间戳。,下面用,WinHex,模板查看图,6.12,所示簇位图文件目录项的结构,如图,6.13,所示。,在,ExFAT,中,文件属性目录项中记录文件名时会产生一个文件名校验,文件名参加校验时需要先将文件名进行大写转换后再进行计算。为此,,ExFAT,用一个表存储大写转换信息,并在根目录下建立一个类型值为,0 x82,的大写转换表目录项,描述它的起始位置及大小,这个目录项位于根目录下的第,3,个目录项位置。某,ExFAT,分区簇位图文件目录项如图,6.14,示。,6.6.3,大写转换表文件目录项,大写转换表文件目录项各字节含义见表,6.6,。,(,1,)大写转换表的起始簇号一般都为,3,。,(,2,)大写转换表的大小字节数,固定为,5836,个字节。,下面用,WinHex,模板查看图,6.14,所示大写转换表文件目录项的结构,如图,6.15,所示。,ExFAT,文件系统中每个用户文件至少有三个目录项,这三个目录项被称为三个属性:第一个目录项称为“属性,1,”,目录项首字节的特征值为“,85H,”;第二个目录项称为“属性,2,”,目录项首字节的特征值为“,C0H,”;第三个目录项称为“属性,3,”,目录项首字节的特征值为“,C1H,”。,(,1,)“属性,1,”目录项,“属性,1,”目录项用来记录该目录项的附属目录项数、校验和、文件属性、时间戳等信息。用户文件的“属性,1,”目录项如图,6.16,所示。,6.6.4,用户文件目录项,用户文件的“属性,1,”目录项中各字节含义见表,6.7,。,0 x010 x02,:附属目录项数。该参数指除此目录项外,该文件还有几个目录项,当前值为,2,,说明这个文件除了“属性,1,”目录项外,后面还有两个目录项,也就是“属性,2,”目录项和“属性,3,”目录项。,0 x020 x03,:校验和。该参数是校验算法算出来的目录项的校验和。,0 x040 x07,:文件属性。该参数描述文件的常规属性,属性具体含义见表,6.8,。,下面用,WinHex,模板查看图,6.16,所示用户文件“属性,1,”目录项的结构,如图,6.17,所示。,(,2,)“属性,2,:目录项,“属性,2,“目录项用来记录文件是否有碎片、文件名的字符数、文件名的,Hash,值、文件的起始簇号及大小等信息。,用户文件的“属性,2,”目录项如图,6.18,所示。,用户文件的“属性,2,”目录项中各字节含义见表,6.8,。,0 x010 x01,:文件碎片标志。该参数反映文件是否连续存放。如果是连续存放没有碎片,该标志为,03H,,如果不连续存放,文件有碎片,该标志为,01H,。,0 x030 x03,:文件名字符数。该参数用来说明文件名的长度,,ExFAT,文件系统的文件名用,Unicode,码表示,每个字符占用两个字节。,0 x040 x05,:文件名,Hash,值。该参数根据相应算法算出文件名的校验值,当文件名发生改变时,,Hash,值也发生相应的变化,但当文件移动时,该值不变。,0 x080 x0F,:文件大小,1,。该参数是文件的总字节数,用,64,位记录文件大小。,0 x140 x17,:起始簇号。该参数描述文件的起始簇号。,0 x180 x1F,:文件大小,2.,该参数也是文件的总字节数,是为,NTFS,文件系统的压缩属性准备的,一般情况下与“文件大小,1,”保持一致。,下面用,WinHex,模板查看图,6.18,所示用户文件“属性,2,”目录项的结构,如图,6.19,所示。,(,3,)“属性,3,”目录项,“属性,3,”目录项用来具体记录文件的名称。如果文件名很长,“属性,3,”可以包含多个目录项,每个目录项称为一个片段,从上至下依次记录文件名的每一个字符。,用户文件的“属性,3,”目录项中各字节含义见表,6.9,。,因为该文件名很短,所以只有一个片段。,下面再看一个文件,文件名为“,shu-ju-hui-fu-zhao-zhen-zhou-zheng-fa-xue-yuan.txt,”,其目录项如图,6.22,所示。,从图,6.22,和图,6.23,中可以看出该文件有,6,个目录项,一个“属性,1,”目录项、一个“属性,2,”目录项、四个“属性,3,”目录项。,6.7.1,根目录的管理,第,1,步,,定位,DBR,,通过引导扇区模板,查看根目录首簇。引导扇区模板如图,6.24,所示。,6.7,ExFAT,文件系统根目录与子目录的管理,第,2,步,,通过文件名定位目标文件的目录项。从图,6.24,可以看出根目录首簇号为,4,,跳转到,4,号簇,通过文件名定位目标文件的目录项(如图,6.25,所示),并用用户文件目录项模板查看,如图,6.26,所示。,第,3,步,,定位,FAT,表和簇位图文件,查看文件存放簇链。因为文件,test.txt,存放的起始簇号为,5,,所以我们定位到,FAT,表查看,5,号,FAT,项的数据,从图,6.24,引导扇区模板我们可以看出,FAT,表在,128,号扇区,跳转到,128,号扇区,,FAT,表内如如图,6.27,所示。,从图,6.28,可以看出,该文件目前只有一个字节的数据“,0F,”,换算为二进制“,00001111,”,说明,2,、,3,、,4,、,5,这四个簇目前被使用,其中,2,、,3,、,4,簇分别被簇位图文件、大写转换表文件和根目录占用,,5,号簇就是被,test.txt,文件占用。,第,4,步,定位数据区。通过上一步我们得出,test.txt,文件仅占用,1,个簇,即,5,号簇,下面我们定位到,5,号簇,查看其内容,如图,6.29,所示。,因为文件大小为,44,个字节,所以从第一个字节开始连续的,44,个字节即是文件,test.txt,文件的内容。,以上就是,ExFAT,文件系统对根目录下文件的管理。,I,盘的根目录下有个文件夹“,123,”,文件夹“,123,”下面有一个文件“数据恢复,.txt,”,下面我们看看,ExFAT,文件系统是如何管理子目录及子目录下的文件的。,首先通过,WinHex,查看文件夹“,123,”的目录项,如图,6.30,所示。,6.7.2,子目录的管理,该目录项各字节的含义见其模板,如图,6.31,所示。,以,6.7.1,节分析的“,test.txt,”文件为例,看看其被删除后的底层变化及恢复的方法。,“,test.txt,”文件的目录项及其内容参看图,6.25,、图,6.26,及图,6.29,。现在我们将文件“,test.txt,”彻底删除。,删除后文件的目录项如图,6.35,所示。,6.8,ExFAT,文件系统删除文件的分析,经过与图,6.25,中该文件删除前的目录项的对比,可以发现文件删除后只是目录项的首字节发生了变化,由原来的“,85H,”、“,C0H,”、“,C1H,”改变为“,05H,”、“,40H,”、“,41H,”,其它字节没有任何改变,文件的起始簇号、文件大小、文件名等关键信息都完好地存在。,该文件存放在,5,号簇,现在跳转到,5,号簇,其内容如图,6.36,所示。,通过对比图,6.29,和图,6.36,的内容,我们发现,5,号簇的内容也就是文件的内容没有任何变化,这就说明了删除文件并没有清空其数据区。,因为文件“,test.txt,”只占用一个簇,不可能有碎片,所以其在,FAT,表中也就没有登记项,文件删除前后,FAT,表中,5,号表项都为“,00 00 00 00,”。但文件删除后,文件所占用的,5,号簇会被释放,以便其它文件使用,所以该文件在簇位图文件中对应的位会被清零,“,test.txt,”文件删除后,分区的簇位图文件如图,6.37,所示。,从图,6.37,可以看出文件删除后簇位图文件的内容变成了“,37,”,把十六进制的“,37,”转换成二进制为“,00110111,”,,5,号簇所对应的二进制位已经由“,1,”变成了“,0,”,说明,5,号簇被释放。,通过前面的分析,我们知道文件删除后文件名、起始簇号、大小及数据内容都没有变化,所以只要根据这些信息定位到文件的内容并另外保存即可恢复删除的文件。,通过实验发现,即使文件没有连续存放,也就是文件在,FAT,表中有簇链,当文件删除后,文件所对应的簇链也不会被清空,所以不管文件是否连续存放,其恢复的方法是一致的。,6.9.1,格式化的底层分析,格式化就是给分区创建一个文件系统。首先看一个有数据的,ExFAT,分区,然后将其格式化,分析格式化前后原来数据的变化。,图,6.38,是一个,ExFAT,分区“,I,”中的数据,有两个文本文件和一个文件夹。,6.9,ExFAT,文件系统误格式化的分析,下面我们在,WinHex,下打开该分区的,FAT,表,,FAT,表的位置通过,DBR,参数获得。当前分区,I,的,FAT,表如图,6.40,所示。,簇位图文件的位置也可以通过,DBR,参数获得,一般在,2,号簇。分区,I,的簇位图文件内容如图,6.41,所示。,分区,I,根目录也就是,4,号簇的内容如图,6.42,所示。,文件夹“,abc,”下的文件“,333.txt,”的目录项如图,6.43,所示。,通过前面的分析知道,,ExFAT,文件系统格式化后,,FAT,表第一个扇区中用户文件的簇链会被清零,根目录的用户文件目录项也被清零,所以根目录下的文件就很难被恢复了,因为没有目录项就无法知道原有文件的文件名及它们存放的位置。但不是绝对不能恢复,因为格式化是不破坏用户文件的数据区的,利用用户文件头部特征及文件内容特征还是有可能恢复的。,子目录下的文件目录项没有遭到任何破坏。如果文件是连续存放的,那么子目录下的文件是完全能够恢复的。我们只需根据文件名定位文件目录项,再根据文件目录项获取文件起始簇号和文件大小信息,最后到数据区选中相应数据另存到一个新的文件即可。如果文件是不连续存放的,即使文件目录项还在,但由于文件存放的簇链已被清空,所以还是很难恢复的。,6.9.2,格式化后文件的恢复,6.10,ExFAT,文件系统,DBR,手工重建实例,手工重建,ExFAT,文件系统,DBR,的方法与手工重建,FAT,文件系统、,NTFS,文件系统,DBR,的方法类似,都是以计算并修改,BPB,参数为主,但重建,ExFAT,文件系统的,DBR,后还需要计算分区引导区域的校验值并填写到第,11,号扇区,分区才能够正常打开。下面看实际操作。,第,1,步,复制同版本的,DBR,先从其它,ExFAT,分区中复制一份完好的,DBR,扇区,然后写入“,H,”盘的,0,扇区。此操作的目的是获取,DBR,扇区里的引导程序信息,因为不同,ExFAT,分区的引导程序是通用的。,第,2,步,计算,BPB,参数,ExFAT,文件系统的,BPB,中需要修改的参数有:,隐藏扇区数(,Partition Sector Offset,),扇区总数(,Total Sectors in Volume,),FAT,起始扇区号(,FAT Location Sector Number,),FAT,扇区数(,Size of FAT in Sectors,),首簇起始扇区号(,Bitmap Location Sector Number,),总簇数(,Number of Clusters,),根目录首簇号(,Root Directory Location Cluster Number,),每簇扇区数(,Sectors per Cluster,),我们先用,ExFAT,的,DBR,模板查看一下复制过来的,DBR,,如图,6.53,所示。,第,4,步,计算校验值,ExFAT,文件系统的主引导区域包括分区的前,12,个扇区,并且最后一个扇区是校验扇区,其内存储的是前,11,个扇区通过校验函数生成的校验值,校验值是,4,个字节的数据,在校验扇区内重复填写。修改前,11,个扇区的任何一个字节都会导致校验值发生变化、校验失效。,因此,经过以上三步后,虽然已经保证,BPB,参数的正确,但由于前,11,个扇区除了,BPB,参数之外的某些字节的数据也发生了变化,已经无法通过校验,分区同样还是会提示格式化。,解决办法就是利用校验函数对分区的前,11,个扇区重新进行校验运算,生成校验值,填入校验扇区。,跳转到,11,号扇区,即原始的校验扇区,内容如图,6.63,所示。,下面利用工具对修改,BPB,参数之后的分区前,11,个扇区重新进行校验运算,生成校验值,并填入,11,号扇区,覆盖原来的校验值,覆盖后的校验扇区如图,6.64,。,覆盖校验扇区后保存,然后再把主引导区域(,011,号扇区)的数据复制、粘帖到备份引导区域(,1223,号扇区)保存,最后在“我的电脑”里双击“,H,”盘即可正常打开。,注:校验值计算工具可根据校验算法自行开发,也可向作者索取:,zhousun21,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服