FAT32文件系统解析:

首先,打开U盘,现在基本都是NTFS文件系统,重新在网上买了一个FAT32的U盘:

用winhex打开其逻辑磁盘:


然后根据分析分析:

首先是DBR部分:

FAT引导记录的前3个字节是跳转指令(Jump Instruction),用于跳转到引导代码的执行位置。这个指令告诉系统在引导记录中的哪个位置开始执行代码。它通常是一个无条件跳转指令,将控制权转移到引导代码的起始位置。

如果FAT引导记录的00号、01号、02号字节存储的是0xEB、0x58、0x90,代表这是一个有效的FAT引导记录的跳转指令。这个跳转指令告诉系统在引导记录中的哪个位置开始执行代码。具体解释如下:

00号字节(0xEB)是跳转指令的操作码,表示无条件跳转。

01号字节(0x58)是跳转指令的目标地址的相对偏移量。在这种情况下,偏移量为0x58,表示跳转到引导记录的第88个字节处。

02号字节(0x90)是NOP指令,用于填充指令的长度。

所以,这个跳转指令告诉系统从引导记录的第88个字节处开始执行代码。

OEM名称(OEM Name):引导记录的第3到第10字节是OEM名称,用于标识制造商或开发商。它通常是一个8字节的字符串,如"MSDOS5.0"。

BPB字段:

前两个字节为0x0200:十进制为512,也就是每个扇区512个字节。

后一个字节为0x40:十进制64,也就是每簇64个扇区,32768个字节,32kB大小

用“Chkdsk”命令查看信息中可以对应:

之后的两个字节为0x0036:十进制为54,也就是FAT表起始位置为第54个扇区处

之后的两个字节为0x02:十进制为2,也就是有两个FAT表,第二个表为第一个表的备份

之后的两个字节,为根目录项数,FAT32以突破该限制,无效,故为0x0000

之后的两个字节,为扇区总数,小于32M使用,故为0x0000

之后的一个字节,为存储介质描述负,为0xF8,表示该FAT32文件系统的存储介质是一个固定磁盘

之后的两个字节,为每FAT表占用扇区数 ,小于32M使用,故为0x0000

之后的两个字节0x003F,为逻辑每磁道扇区数

之后的两个字节0x00FF,为逻辑磁头数

之后的四个字节0x00000040,为系统隐含扇区数

之后的四个字节0x0752FE60,为扇区总数,大于32M使用

之后的四个字节0x00003A95,为每FAT表扇区数,大于32M使用

之后的两个字节0x0000,标记

之后的两个字节0x0000,版本(通常为0)

之后的四个字节0x00000002,根目录起始簇

之后的两个字节0x0001,Boot占用扇区数

之后的两个字节0x0006,备份引导扇区位置

之后的十四个字节,为保留字段

之后的一个字节0x29,为扩展引导标记

之后的四个字节0x00CF51F3,为序列号

之后的十个字节0x202020454D414E204F4E,为卷标,转成字符即“NO NAME”

之后的八个字节0x2020203233544146,文件系统,转成字符即“FAT32”

引导程序代码:

有效结束标志:

第二是FSINFO部分:

前四个字节就是扩展引导标志,前面就是0xAA55

在0x3E4,也就是偏移为0x1E4的地方是签名,之后的四个字节0x001D36EE,为空闲簇数,在引导区中可知一个簇32K,经计算,有58G空间,而属性中标识:基本是准的

后四个字节0x00001338为下一个可用簇号

之后为14字节的未用部分,为全0,之后即是0x55AA的结束标志

第三是FAT表部分:

由引导记录中的BPB结构可知,整个保留区(也就是DBR+FSINFO)占54个扇区,共27648个字节,故可找到FAT表的起始部分:

FAT表访问是几号簇中填的谁下一个簇就是谁

首先0号簇和1号簇中的

为FAT的开始标识,通常2号簇为根目录,其号为0xFFFFFFF,即为根目录大小占一个簇,而此时我们的U盘中只有四个文件:

而其中test1.txt和test2.txt大小仅占32k(一个簇):

所以在FAT表中就是第三号簇和第四号簇,我们可以发现,第五号簇中填的第六个,以此类推,一直向下找,找到这个文件的结束符号:

从第五号簇到这部分就是我们最大的那个exe:

之后的这部分就是剩余的PDF的簇区间:

可知PDF文件大小:

在winhex中刚好占有15个簇。

FAT表至此结束,之后的就是未分配的空间,故全为0。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值