FAT32 - 硬盘综合分析
<!-- [toc] -->
物理驱动器信息
隐藏扇区数 : 128 1C - 1F
保留扇区:8234 (从DBR到FAT表中的扇区数)0E - 0F
每簇扇区数:8 0D
分区大小:4,188,160 20 - 23
FAT表大小:4,075 24 - 27
簇数:521,600 (FAT表大小 * 512 / 4)
数据区根目录:16512 (固定2号簇)
--文件--
- 1.Png(10簇 大小:490,711字节)
- woshimljaaahhh.txt:(9号簇 大小:11字节)
--文件夹--
23文件夹(130号簇)
- 2333.txt(8号簇,大小:12字节)
查询方法记录
打开常用的窗口
- 打开物理驱动器
隐藏扇区数查询
- 打开物理驱动器后,单击分区1,左下角显示的 扇区 128/4194304 ,其中128就是隐藏扇区数。
- 如图单击后,进入到驱动器的DBR扇区--EB 58 90(标识)。
- 其中第二行1C - 1F 数据 为 128,同样可以表示扇区数。
每扇区字节大小
- 在DBR扇区中第0行中的0B-0C 为每扇区字节大小。
每簇占扇区数
1.在DBR扇区 中第0行中的 0D 存储的为每簇扇区大小,当前为8扇区。
保留扇区数
- 在DBR扇区 中第0行中的 0E-0F 存储的为保留扇区数,当前保留扇区数为8234。
分区大小
- 在*DBR扇区* 中位置20 - 23 中4个字节中的 32Bit 数字为当前分区大小,当前分区大小为4,188,160。
FAT表大小
- 在*DBR扇区* 中位置 24 - 27 中4个字节中的 16Bit数字为当前FAT表大小,当前FAT表大小为4,075。
簇数大小
- 计算公式为:FAT表大小 * 512 / 4,当前簇数大小为
4,075 * 512 / 4 = 521,600
。
跳转到FAT表
- 回到DBR扇区的00位置。
- 点击offset表任意位置,切换为十进制模式。
- 单击 下方的偏移地址,开始设置偏移量。
- 将(十进制)前面的模式切换到扇区(Sectors)输入*保留分区的大小*,并选择为当前位置。
- 点击确定,如果保留扇区大小没错,就到了FAT1表。
- 从当前FAT1的位置再跳转一个FAT表的大小,就到了FAT2表。
Tip:
- FAT表起始都为 “F8 FF FF 0F”
- “FF FF FF 0F”表示当前簇被占用
根目录位置
- 从FAT2 位置 跳转一个FAT表的大小就到了 数据区根目录。
- 目录项:32个字节为一项!(两行数据为一项)
- 短文件名:前八个字节为文件名,后三个字节为后缀
簇号计算
- 高位簇
(14 - 15)
* 65536 + 低位簇(1A-1B)
分析文件
png文件分析
(10簇 大小:490,711)
- 文件为短文件名:前八个字节为文件名,后三个字节为后缀。
- 通常两行数据表示一个项目。
- 其中 14 - 15 表示的是文件的高位簇
- 如图(十六进制 1A-1B)(十进制 1 10 -1 11) 位置为文件的低位簇,当前文件为10簇。
- 在低位簇1A - 1B后四位字段 1C - 1F 表示文件字节大小,当前文件字节大小为490,711。
接下来跳转到1.png文件的数据区:
- 已知文件簇10,数据根目录簇为2簇,每簇大小8扇区。
- 从根目录扇区跳转 (10 - 2)* 8的扇区大小即可。
- (文件簇 - 根目录簇) * 每簇大小
png恢复数据!
- 已知文件大小为:490,711 字节。
所以从数据区选择块尾
- 打开跳转,切换为字节(Bytes)模式,输入文件的大小后点击确定,跳转完成。
- 跳转完成后,选择块尾,右键,点击“选块尾部”即可。
- 选择完成后,右键,点击“编辑”,点击“复制选块”—“至新文件”,保存到任意位置即可。(文件名后缀为原来文件后缀)
txt文件分析
- 长文件名原理相同;长文件名文件占用4行表示一项,会根据长度而改变。
- 第一部分是高位簇,第二部分为低位簇,第三部分为文件大小。
文件夹分析
- 回到数据根目录区。
- 此项为23文件夹,1区块为文件夹名字,2区块为高位簇,3区块为低位簇。(复习:高位簇为文件位置:14 - 15 低位簇为文件位置:1A - 1B)
- 如图得知,文件夹簇号为:130
- 接下来跳转到文件夹的数据区,(130 - 2) * 8 个扇区数。注意:从根目录起点开始跳转。
- 如上图跳转完成后显示,其中包含了文件夹中文件的目录。可当作数据根目录对文件夹中文件就行操作,恢复!
注意:文件夹中文件的簇号,可以从当前簇向上跳转即可