1. 当前位置:网站首页 > 数据恢复

FAT32笔记


FAT32

总结构:

 

MBR

 

DBR

 

备份

 

FAT1

 

FAT2

 

数据区

 

DBR重要偏移描述:

 

偏移

解释

备注

00-02

跳转指令

固定EB5890

0B-0C

每扇区字节数

固定0002

0D

簇大小

具体算法

0E-0F

DBR保留扇区

具体算法

10

FAT表个数

固定为02

1C-1F

起始扇区

DBR

20-23

扇区总数

容量

24-27

FAT表大小

具体算法

FE-FF

结束标志

固定55AA

 

 

重建FAT32DBR:从其他分区复制一个完好的FAT32DBR

 

簇大小={(扇区总数-2FAT表大小-DBR保留扇区)/512}4

 

DBR保留扇区=FAT1起始-DBR(向下搜索F8FFFF0F找到FAT1的起始)

 

FAT表大小=FAT2起始-FAT1起始(再次向下搜索F8FFFF0F找到FAT2起始)

 

容量=DBR下一扇区的E8-EC的数据✖簇大小(得到的是大概值,向上下搜索!00即可)

 

根目录重要偏移描述:

 

相对偏移

解释

备注

00-07

文件名

没用到的为20

08-0A

扩展名

 

0B-0B

文件属性

 

14-15

文件起始簇号

高位

1A-1B

文件起始簇号

低位

1C-1F

文件大小

字节数

文件属性解析:

 

00000000(读/写)、00000001(只读)、00000010(隐藏)、00000100(系统)、00001000(卷标)、00010000(子目录)、00100000(存档)

 

下图为根目录的某个文件描述结构图:

 

FAT32笔记

 

 

手工提取文件:

 

找到根目录:固定在2号簇

 

根目录起始扇区=FAT表大小✖2+DBR保留扇区+DBR起始扇区

 

根目录中每32字节描述一个文件记录,记录中相对偏移14-15为文件起始

簇号的高位,1A-1B为文件起始簇号的低位,偏移1C-1F为文件大小(字节数)。

 

例子:

 

FAT32笔记

 

 

所以该文件为1.doc,起始簇号为00 00 00 0C(高位从右往左读,低位一样)

文件大小为00 26 00 0016进制字节数)

文件起始位置=(文件起始簇号-2)✖簇大小+DBR+根目录起始扇区

 

如何 在没有FAT表的情况下提取碎片:

 

首先看DOC文件头的最后一个扇区分配表,然后所得的值MOD 128(一个配置表可以记录128个扇区),再乘以4后,向下搜索FDFFFFFF,且偏移为512=取余后乘以4的值。

 

 


本文最后更新于2023-10-17,已超过 3个月没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
版权说明

本文地址:https://bolg.xs357.com/post-111.html
未标注转载均为本站远程,转载请注明文章出处:

联系我们

在线咨询:点击这里给我发消息

微信号:LS1975172433

工作日:9:00-23:00,节假日休息

扫码关注