软件安全学习笔记(5):FAT32文件系统与数据恢复

来源:互联网 发布:一级位面淘宝网txt 编辑:程序博客网 时间:2024/05/16 18:28

一、FAT32文件系统结构

1、引导扇区:描述分区大小、簇的大小、FAT表个数与大小、分区引导程序等。

2、FAT(文件分配表)FAT1+FAT2:记录数据存储区每一个簇的使用情况,形成每个文件的簇链表

3、数据存储区:

存储两类数据:目录项、文件数据


二、几个概念

1、簇:文件系统将磁盘以一定数量的扇区为单位进行划分,这样的单位称为簇。是文件空间分配的最小单位。

2、FAT表:微软在FAT文件系统中用于磁盘数据索引和定位引进的一种单向链式结构。

FAT表中的表项个数=簇的个数,用来记录每一个簇的占用情况。若为0,则表示对应簇空闲。

FAT32的每个表项32位,4个字节。可表达的最大簇号为4G

3、簇链:一个文件所占用簇的序号形成的单向链表。

实现方法:在文件占用簇的对应簇号的FAT项,填写下一簇的簇号。如果为最后一簇,输入"FFFFFF0F".


三、文件的存储

1、存储过程:

根据文件大小在FAT表中定位足够的空闲簇——>在数据存储区创建目录项——>在FAT中构建簇链表——>在对应分配的簇中写入数据。

2、目录项的含义:

文件名+后缀名+文件属性+保留+文件创建时间+日期+访问日期+首簇高16位+更新日期及时间+首簇低16位+文件大小


四、文件删除

目录项变化:首簇高位清零、文件名首位修改为E5

簇链表变化:全部清零

文件内容:无变化


五、文件恢复

1、还原文件名首位:

长文件名:逆向定位完整文件名

2、确定高位并还原

参考相邻目录项首簇高位。

从0往上试探,看首簇指向内容是否为文件内容

3、修复FAT表簇链

通过文件大小计算所占簇数目

假设连续存储,进行簇链修补。末项用0fffffff。


0 0
原创粉丝点击