王春兰
DOI:10.16644/j.cnki.cn33-1094/tp.2021.11.015
摘 要: 文件恢复对电子取证行业非常重要,而文件签名恢复文件是一种常用的文件恢复方法。其过程是,搜索文件签名以确定文件起始扇区号;根据文件签名尾或大小来估算文件的结尾扇区号;把起始和结尾扇区之间的内容复制生成一个新文件即可得到被删文件。如果文件在数据区中是连续存放的,该恢复方法的成功率非常高。文章以FAT32文件系统为例,把一个JPG文件彻底删除,再借助WinHex软件成功地对其进行恢复。
关键词: 文件删除; 文件恢复; 文件签名; 文件类型; 扇区
中图分类号:TP3 文献标识码:A 文章编号:1006-8228(2021)11-60-03
Principle and practice of file signature based file recovery technology
Wang Chunlan
(School of Evidence Science, Gansu University of Political Science and Law, Lanzhou, Gansu 730070, China)
Abstract: File recovery is very important to the electronic forensics industry, and file signature based file recovery is a common file recovery method. Its process is to search the file signature to determine the file starting sector number; Estimate the end sector number of the file according to the signature tail or size of the file; The deleted file can be obtained by copying the contents between the start and end sectors to generate a new file. If the file is stored in the successive sectors, the success rate of this recovery method is very high. In this paper, taking FAT32 file system as an example, a JPG file is completely deleted, and then be successfully restored with the help of WinHex software.
Key words: file deleting; file recovery; file signature; file type; sector
0 引言
隨着计算机和电子产品的普及,计算机犯罪现象越来越多,不法分子在作案时会将犯罪“痕迹”留在计算机或移动存储介质中,这里的“痕迹”就是指数据。为了逃避惩罚,他们会使用各种各样的高超“去痕”技术抹去在犯罪过程中留下的数据痕迹。这就需要电子取证人员通过数据恢复来重现犯罪分子所留下的作案证据[1]。如今整个社会对电子证据的重视程度不断提升,电子取证的地位越来越重要,其中基本手段之一的数据恢复技术,对收集犯罪证据有极大帮助[2]。虽然目前计算机磁盘默认采用NTFS文件系统,但是移动存储介质在计算机犯罪案件中很常见,而移动存储介质通常采用FAT32文件系统,所以电子取证工作中FAT32文件系统中的数据恢复需求非常旺盛。
本文对FAT32文件系统中被彻底删除的文件进行恢复。采取的方法是根据文件签名来手动恢复文件。
1 文件签名
文件签名即文件头,是位于文件开头的唯一标识号。文件签名标识文件真实类型[3]。有相当一部分文件类型的文件签名既有开头,又有结尾,所以很容易找到文件的起止存储位置,从而恢复出整个文件。
以RAR压缩文件为例,其特有的文件签名为“52 61 72 21”字节段。也正是通过这个字节段,我们能准确解读并判断它是RAR格式的文件。其他各种文件类型的文件签名都有自己的数值,有的长些,有的短些,有的在文件的开头,也有的可能在文件的中间或结尾,也就是相对于文件开始有一定的偏移,有的文件格式有文件签名头部和尾部,如常见的JPG图像,其签名头部是FFD8,签名尾部是FFD9。一般情况下,我们在一个文件开头发现了某段签名,就可以判断它是什么格式的文件了[4]。
2 FAT32文件系统结构与数据删除
为了弄清楚数据恢复的思路,我们需要先明白FAT32文件系统的结构以及该文件系统在删除数据时的操作细节。
2.1 FAT32文件系统结构
如图1所示,FAT32文件系统由保留扇区、FAT表、DATA区组成[5]。其中保留区中所含的DBR扇区称为引导扇区,里面包含了文件系统的重要参数比如保留区的大小(扇区数),FAT表的大小(扇区数),分区根目录在DATA区中的簇号等。
FAT表有两份,FAT2是FAT1的备份。FAT表可以告诉我们数据区中哪些簇是空闲的,可以被再分配。DATA区被划分为一个个簇,用来存放文件和文件夹(目录)的内容。如果某个簇是用来存放文件的,则该簇里存放的文件的内容,如果某个簇是用来存放文件夹,则该簇空间被分为一个个长度为32字节的目录项,目录项用来描述该文件夹的子对象(子文件或子文件夹)的基本信息,如名称、常规属性、起始簇号等,其中名称存放在目录项的起始位置。
2.2 文件系统如何进行彻底删除
在建立文件时,会在该文件的父文件夹中给该文件分配目录项,对该文件进行登记,然后给该文件分配DATA区的簇,同时在FAT表中相应簇的FAT表项处登记该簇已被分配,把文件内容写入所分配的簇中。所以建立文件时文件系统做了三件事:在父目录的目录项中登记,在FAT表项中标记簇已分配,在簇中写入文件内容。
但是,在彻底删除文件,文件系统只做两件事,第一是把该文件在父文件夹中的目录项的第一个字节改成E5H,代表该子对象已被删除,第二是根据目录项找到该文件的起始簇号,到FAT表中把该文件所占的所有簇的FAT表项都清零,表示这些簇都变成未分配状态。为了整体读写速度考虑,这些簇中所存放的文件内容并没有做任何操作,所以这种删除文件的操作策略,为我们做数据恢复提供了便利。
快速格式化的操作思路与彻底删除单个文件基本一致,区别在于快速格式化时,文件系统会对该分区的所有文件进行彻底删除。
3 基于文件签名的数据恢复实践
3.1 文件恢复前的准备工作
新建一个虚拟磁盘,初始化后格式化成FAT32分区。然后在根目录中放入一个TIKTOK.JPG文件,然后把该文件彻底删除。下面开始用基于文件签名的方法来恢复它。
要恢复该文件,必须知道该文件内容的起始扇区和结束扇区。要恢复的对象是JPG文件,有文件签名头部FFD8和尾部FFD9,所以用WinHex打开该分区,在DATA区,搜索文件签名头部和尾部来定位文件内容。首先要定位到DATA区起始位置。
从图2该分区的引导扇区可以知道,该分区前隐藏扇区有128个扇区。而该Fat32分区的保留区有6646个扇区,每个FAT表的大小为773个扇区,根目录在DATA区的2号簇(因为特殊原因,DATA区的簇以2开始编号),所以128+6646+773*2=8320号扇区是根目录的起始扇区。
3.2 根据文件签名进行数据恢复
前面确定了DATA区起始扇区号为8320,在Winhex中跳转到该扇区,根据要恢复的文件是JPG类型,可以搜索其文件签名头FFD8(图3),如图4所示在8336号扇区的开始位置搜到了FFD8。
右键选取FF所在字节,选择“选块开始”。
然后搜索JPG文件的文件签名尾FFD9,如图5所示在第8392号扇区找到了FFD9。
大致估算这块数据的大小为(8392-8336+1)*512B=28KB,跟文件大小基本相符,于是,在FFD9的位置右键选择“选块结尾”,文件内容就被全部选中,然后右键点击编辑——复制选块——置入新文件,给该文件命名,注意要手动输入后缀名JPG,保存到某个位置。然后打开该文件,看到文件被成功恢复,如图6。因为文件名保存在根目录的目录项而不是文件数据存储簇中,所以按此恢复方法只可得到文件内容。
如果对分区进行了快速格式化,文件系统也会把所有文件的FAT表的对应位置和所在目录的目录项进行修改,但是数据区中的文件内容也同样没有进行擦除。所以,也可以用同样的基于文件签名的方式进行数据恢复。
在进行文件恢复时,如果所要恢复的文件类型没有文件签名尾,那就需要借助文件大小来估算文件存储的结尾位置。比如本例中,该文件的大小为28KB,那么根据一个扇区为512B的经验,可以推算该文件应该占用28KB/512B=56个扇区,而根据所搜到的文件签名头在8336号扇区,就可以知道文件内容结尾位置应该是8336+56=8392号扇区,也可以顺利恢复文件。
另外,在搜索文件签名头部时,为了避免有其他并不是文件签名头的“FFD8”被误当作文件开始,还可以借助FFD8是否出现在簇的开始位置来判断、借助FFD8和FFD9之间的数据量是否与文件大小相符合来进行判断。另外,如果该文件的目录项没有被新文件的目录项覆盖,还可以搜索目录项来获取起始簇号再去计算起始扇区号。如果有多个FFD9,也可以用FFD8和FFD9之间的数据量是否与文件大小相符合来进行判断。如果无法判断,则可以逐个导出尝试性恢复。
4 结束语
因为嫌疑人会故意删除犯罪证据,所以在电子取证工作中,恢复数据是非常重要的,而目前很多移动存储介质均采用FAT32文件系统,本文对FAT32文件系统中已被彻底删除的文件进行了恢复。根据文件签名头部找到该文件内容的起始位置,然后再根据文件签名尾部,找到文件内容的结束位置,就可以把该文件内容完整地恢复出来。如果要恢复的文件类型只有文件签名头,没有文件签名尾,可以根据文件的大小来估算文件内容存放的结束位置。所以,在文件连续存放的前提下,只要文件的内容没有被新文件覆盖,恢复的几率是非常高的。有些个别的文件类型没有文件签名,则不能使用本文的恢复方法。
如果FAT32文件系统中文件存储有碎片,则需要根据文件的结构特征、数据的关联来进行恢复,这种情况的文件恢复会困难很多。
参考文献(References):
[1] 張明旺,侯智文.数据恢复技术在涉案计算机侦查取证中的应用研究[J].科技创新导报,2018.15(6):170-173
[2] 戴士剑,涂彦晖.数据恢复技术(经典重现版)[M].电子工业出版社,2014.
[3] 张婷婷.试论计算机取证中的数据恢复技术[J].科技风,2017.5:61
[4] 胡敏,杨吉云,姜维.Windows下基于文件特征的数据恢复算法[J].计算机应用,2011.31(2):527-528
[5] 张化军,王恩辉,刘晓燕.FAT32文件系统误删除数据恢复[J].包头职业技术学院学报,2013.14(2):21-23,31