欢迎来到天天文库
浏览记录
ID:52310689
大小:366.50 KB
页数:3页
时间:2020-03-26
《winhex手工恢复FAT16文件系统.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、winhex手工恢复FAT16文件系统根目录项(Rootentries)为512,每个目录项占用32字节,所以FDT(FileDirectoryTable)共占用512*32/512=32个扇区。这512个目录项是根目录下所有登记项的总和,包括卷标、子目录和文件。公式精确方法:FAT扇区数=(扇区总数+2*每簇扇区数–32–保留扇区数)/(256*每簇扇区数)例:FAT扇区数=(3915713+128-32)/(256*64)=238.99029541015625=239扇区粗略方法:FAT扇区数:FAT用两个字节记录一个簇。例:FAT扇区数=总簇数*2/512=(
2、3915713/64)/256=238.99615478515625=239扇区FAT16文件系统结构一个文件或子目录在磁盘上的存储位置(逻辑扇区号)为:1+2*FAT扇区数+FDT扇区数+(起始簇号-2)*每簇扇区数解释:“1”代表DBR扇区,“起始簇号-2”代表用户文件从2号簇开始计算的。这样的话,第一个文件的起点(第2簇)紧随FDT。DBR引导DBR与分区的位置关系每个分区的DBR都位于此分区的第一个扇区。主分区DBR由MBR来制定,扩展分区由虚拟MBR指定。DBR与分区表的位置关系第一个主分区的DBR一般距离MBR的扇区个数为62个(MBR=0,DBR=63
3、),由于每个扩展分区都有一个虚拟MBR,所以每个扩展分区DBR都距离虚拟MBR62个扇区。这里再回忆下分区表链的读取方法:主分区直接由MBR表项中的“本分区之前扇区数”来定位;扩展分区要加上一个偏移,即MBR中制定的“扩展分区之前扇区数”,而且此偏移在所有的虚拟MBR中都不变(这点有点与想当然不一样~),记住就可以了。FAT(FileAssociateTable)FAT紧接着DBR扇区存放。磁盘上的每个簇在FAT中有且只有一个登记项,表项值有三个状态:占用、空闲或坏簇。FAT的位数有12、16和32。12位表项值可表示4096个簇,16位表示65536个簇(一般每簇
4、不多于64个扇区(32KB),这样,FAT16最多管理32*65536=2GB)。FAT32即使每簇4KB大,也可以管理16TB的分区。FAT文件定位由FAT+FDT来定位。FDT每32个字节表示一个文件。其中最重要的是偏移1A-1B两字节,表示此文件的开始簇号(此簇号有两个用处,一是定位文件的DATA,二是在FAT中找文件的下一簇)。例子如图:我们找“Winhex教程.pdf”,先搜索ASCII来到FDT>FAT1起始偏移为0x200,文件长度0x86A0F3,因此我们要定位的偏移为0x16B2我们继续走,发现簇链都是连着的,貌似没有碎片!OK,Winhex教程.
5、pdf的簇范围为:0xA59~0xB66(2649~2918簇)文件长度0xF3A08600,由字节/簇:32,768可知,每簇64扇区。32768=0x8000,0x86A0F3MOD0x8000=0x20F3,即最后一簇占用了0x20F3字节。最后一簇开头截图0x5B5FE00+0x20F3=0x5B61EF3Hash下,发现一模一样。这就对了。
此文档下载收益归作者所有