FAT32的结构以及提取文件
引导语
嗯。。。。。。想不到写些什么引导语了,焯!
关于FAT32分区,实际上也是我们常用的分区之一。U盘就是我们生活中一个典型的例子。当然,这个分区也比较简单,也是比较基础的分区之一。
注:如果没学过WinHex的基础操作的话,建议先看我以前的硬盘分区文章在学习这篇文章。
FAT32的结构
DBR→DBR备份→FAT1→FAT2→用户数据区(根目录、子目录等)
DBR的第一行0D字节(倒数第三个字节)是分区簇数
分区簇数获得方式:第一个子目录所在位置-根目录所在位置=分区簇数
也可以看成是根目录与子目录的距离
DBR的第二行08~0B字节是分区位置
也可以通过左下角的扇区数得知分区位置(在得知当前扇区是DBR位置的情况下)
DBR第三行的00~03字节(前面4个字节)是分区的容量大小
从DBR向下偏移6个扇区就是FAT32的DBR备份
FAT32提取文件:
先通过向下搜索"!00"(非零)直到找到根目录,在向下“非零”找到子目录(可能不止一个,具体看根目录有显示多少个子目录),找到文件位置的字节和文件大小的字节。
然后计算数值在当前目录跳转文件位置
计算公式:
文件位置:文件位置10进制数值×分区簇数=文件位置
文件大小:文件大小10进制数值×分区簇数=文件大小
偏移单位为字节(Bytes)
到当前扇区的第一个字节做"选块起始"
在当前扇区的第一个字节偏移文件大小
在偏移后的位置往前一个字节做"选块结束"
最后至新文件即可
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 五月天的博客!



