APP下载

基于FAT32文件系统的数据恢复技术

2012-06-01张明旺

电子科技 2012年11期
关键词:项中格式化扇区

张明旺

(四川警察学院计算机系,四川泸州 646000)

信息化社会的快速发展,通过电脑进行犯罪的案例越来越多,给人们造成了财产损失。为逃避打击,犯罪分子经常人为地将犯罪资料等数据彻底删除,或将分区甚至整个硬盘进行格式化操作,从而导致犯罪证据的丢失,因此,如何能够迅速准确地恢复出原始数据,为打击犯罪提供有力的证据,将成为至关重要的问题。

1 FAT32文件系统简介

当使用FAT 32文件系统管理硬盘时,能够支持的每个分区容量最大可达到128 TB。FAT32文件系统将逻辑盘的空间划分为3个区,分别是BOOT引导区、FAT文件分配表区和DATA数据区,如图1所示,其中引导区和文件分配表区一起称为系统区。

图1 FAT32文件系统结构

(1)BOOT引导区。引导区共占用3个扇区,保存本逻辑盘每个扇区的Byte数、每个簇对应扇区数等重要参数和引导记录,随后还保留着若干个保留扇区。

(2)FAT文件分配表区。文件分配表区存储有两个相同的文件分配表:一个是基本表;一个是备份表。文件分配表尤为重要,用于保存文件所占用的存储空间以及对空闲空间的管理,因此要对FAT文件分配表进行备份,即为备份表,两表长度和内容完全相同,这样当第一个FAT损坏时,可以用备份FAT还原。

文件系统对数据的存储是按簇进行空间的划分和管理的,簇是空间分配的基本单位,一个文件占用的空间由若干个簇组成。FAT32文件系统的簇号用32位二进制组成,一般从00000002H~FFFFFFEFH为可使用的簇号,每个簇的状态有32位二进制表示。如果该簇未被分配使用,即该簇为空簇,则用值00000000H表示;如果该簇为坏簇,则用值FFFFFFF7H表示,如果该簇为某文件的最后一个数据簇,则用值0FFFFFFFH表示。如果该簇已分配使用,则用值00000001H~0FFFFFEFH表示,且该FAT表项值为该文件的下一个数据簇的簇号。由此可见,FAT表的长度由该文件所占用的簇的个数决定。

当要读取FAT文件系统中的文件数据时,首先访问目录项中储存文件的起始簇号,并通过该起始簇号对应FAT项中记录找到该文件所占有的下一个簇的簇号,同时通过该簇号对应的FAT项中的记录继续寻找文件所占用的下一个簇的簇号,重复这个过程,一直找到下一个簇号的值是结束标志0FFFFFFFH为止,对文件的读取结束。因此,在读取文件时,首先要从该文件的目录项中找出起始簇号,然后通过对应的FAT链就就可以找到该文件占有的所有簇。

(3)文件目录项。文件目录项中保存着文件的详细信息,共占用32个字,包含了文件名、文件扩展名、文件属性、文件大小、文件的创建时间、文件的创建日期,最新访问日期、最新修改时间、最新修改日期和文件字节长度等信息。在这些目录项信息中,文件的起始簇号和文件大小信息,在数据恢复中是最重要的信息。

2 数据存储原理

数据的存储包括对文件的读取、写入和删除3个部分。

(1)文件读取原理。读取文件时,从目录区中找到文件的详细信息,通过访问该起始簇号以及簇号对应的FAT项中记录找到该文件所占有的下一个簇的簇号,一直重复这个过程,直到下一个簇号的值是结束标志时为止,对文件的读取也就结束。

(2)文件写入原理。当保存文件时,首先要在DIR区中找到空区,保存文件的文件名、创建时间和大小等信息,然后在FAT区找到未使用的空间,将数据存储到DATA区。

(3)文件删除原理。当文件被彻底删除时,文件目录表和FAT表都会发生变化。文件目录表中对应该文件的文件名的首字节修改为删除标志“E5H”,同时,该文件的FAT表中的簇链值全部改为“00000000H”空簇标志,即文件所占空间被释放,备份FAT表中对应的簇信息也相应改变。此外,文件目录项中偏移为14~15H Byte处的起始簇号的两个高字节被修改。但是,被彻底删除文件的数据还保留在数据区中,只要该数据区不被新的数据覆盖,理论上能够恢复出原文件的数据。

3 数据恢复方法

对于数据的恢复,可以根据不同的恢复原理进行恢复。

3.1 DBR破坏后的恢复

DBR位于分区的第一个扇区,主要用于管理分区的文件系统结构,如果DBR被破坏,则不能访问分区。对于DBR的恢复,可以使用两种方法:一是利用分区中6号扇区里存放的DBR备份来恢复DBR扇区,但是,如果DBR备份也不存在了就不能使用此方法;二是从其他FAT32格式的分区中DBR复制,粘贴到待恢复分区的DBR扇区,最后再根据DBR保留扇区数,分区大小,FAT表大小和每簇扇区等数据信息来数恢复BPB即可。

3.2 文件删除后的恢复

文件被彻底删除后,根据文件删除原理,对其各个部分的结构进行分析,可知,被删除的文件目录项的第一个字节要被改为“E5”,但文件名和其他字节没有变化。如果这个文件被存放在簇号较大的位置,文件的开始簇号的最高两个字节要被清零,文件的FAT表的簇链也会被全被清零,但是数据区的内容不会改变。

如果文件所占用的数据区不是占用的连续簇号,或文件占用的数据区被覆盖,那么文件将难以被恢复。但是,如果数据是连续存储,而且数据区也没有被新数据覆盖,那么,可以利用恢复软件WinHex进行恢复。只需要将文件所在的数据区全部复制,然后存为一个新文件,并将该文件的数据区中那些16进制值保存到其他盘下。

3.3 分区格式化后的恢复

格式化其实是给分区重新建立文件系统,对分区进行格式化后,分区FAT表的簇链被完全清空,同时根目录区中的文件目录项也会被清空,那么就无法知道文件名和他们存放的地址,所以根目录下的文件很难再被恢复,但子目录区的目录项还会存在,所以有恢复的可能。

首先找到文件的开始簇号和文件的大小,然后从文件开始簇号开始,连续选择文件大小字节数的数据字节,并将这些数据按照上述方法保存,则就可以将文件恢复。但是,这种方法也只适用于文件数据是连续存放的情况,并且文件开始簇号最高位的2 Byte为零。

3.4 文件系统损坏的恢复

当某个分区的文件系统被破坏后,就无法打开此分区,同时系统会提示分区没有格式化,需要重新格式化。此时,可以通过WinHex软件打开分区的DBR扇区,找到分区的6号扇区,其中存储的是DBR的备份,将此备份复制到DBR扇区后就可以打开分区了。

4 结束语

分析了FAT32文件系统结构,并对数据的存储原理进行了分析,重点分析了FAT32文件系统下数据恢复的原理,并在此基础上对数据恢复的具体方法和过程进行了阐述。并不是所有的数据在丢失后都能恢复,因此,应尽量保证数据的安全,及时备份重要的文件。在数据被删除后,应尽量避免存储新的数据,减少原文件所占空间被新数据覆盖的可能性。

[1]迟扬,李亚波.FAT32文件系统下的数据恢复分析[J].计算机安全,2011(4):66-68.

[2]赵晓柯.基于Windows FAT32的数据恢复原理分析及算法研究[J].科技信息,2010(14):222-223.

[3]廖根为.基于多结构信息的FAT文件系统数据恢复算法[J].电信科学,2010(5):100 -104.

[4]李岩.计算机取证中关键技术研究[D].上海:上海交通大学,2010.

[5]张娜,冯云鹏.Windows FAT32和NTFS下的数据恢复研究[J].信息技术,2010(5):162-164.

猜你喜欢

项中格式化扇区
分阶段调整增加扇区通行能力策略
现代人守则:昏死之前请把手机格式化
An Unforgettable Present
巧用Word替换纠正角标跑偏
关于抛物线切线方程的研究
U盘故障排除经验谈
格式化
基于贝叶斯估计的短时空域扇区交通流量预测
重建分区表与FAT32_DBR研究与实现