需要恢复的Hive文件名应该是SAM、SECURITY、SOFTWARE、SYSTEM、HARDWARE、.DEFAULT以及每一个用户的NTUSER.DAT和UsrClass.dat。根据不同的文件名,依次搜索匹配。对于不同的用户的NTUSER.DAT可以通过路径中包含的用户名来区分。对于不同的用户的UsrClass.dat可以通过SID来区分。本地服务用户为S-1-5-19;网络服务用户为S-1-5-20;系统登录用户账号通过NTUSER.DAT文件的ProtectedStorageSystemProvider的SID命名的子键来获取SID。
当Hive文件不发生分片的时候,即Hive文件是连续的顺序存放在磁盘中。根据前面的分析,全部Hive文件可以被恢复出来。算法1的具体步骤如下:
(1)顺序搜索整个磁盘,找到前四个字节是“regf”开始的簇,并且该簇偏移量0X200处是标识符“00000000”,读取头部的文件名和修改日期。如果文件名相同的Hive文件有两个以上的,通过修改日期选择最近被修改的。
(2)判断Hive文件是否分片。如果不分片,Hive文件的全部hbin块都是在头部块后面,所以在找到正确的文件头部后,根据每个HBIN块的大小,找出Hive文件的全部HBIN。
(3)根据不同的文件名,重复操作步骤1和步骤2。
当Hive文件发生分片,并且分片位于两个HBIN块之间时。算法2具体恢复步骤如下:
(1)根据算法1的第一步,找到符合要求Hive文件头部块。
(2)判断Hive文件是否分片。如果Hive文件分片,找到分片点。通过前面的描述,可以知道下一个HBIN块到第一个HBIN块的距离。该距离是分片点前的HBIN块到第一个HBIN块的距离加上该HBIN块的大小。搜索整个磁盘,找到前四个字节是“hbin”开始的全部的簇,并且在该簇偏移量0X04处是该HBIN块到第一个HBIN块的距离。把符合条件的分片都找到,并把它们组合在一起,生成Hive文件。
(3)根据不同的文件名,重复操作步骤1和步骤2。
3.实验和结果
本文对Hive文件恢复进行实验。实验采用的数据集是DigitalCorpora提供的nps-2009-realistic[6]。该数据集是一个正在运行的WindowsXP系统,文件格式是NTFS,并且包含两个用户。该数据集一共有15个Hive文件,其中包括三个系统用户(adiminstrator、domex1和domex2)的六个Hive文件。这些Hive文件中只有DEFAULT和domex2的NTUSER.DAT文件发生了分片,分片点是在两个HBIN块之间。其它Hive文件都是连续的。
利用本文提出的算法对该数据集进行恢复,同时对比WinHex的恢复结果。WinHex没有提供对Hive文件的恢复,必须手动的添加Hive文件的特征,如:魔幻数“regf”和文件大小。假设最大的Hive文件能够达到1M,这样可以包含大部分的Hive文件。分别用这两个工具进行实验。结果表明这两个工具都可以能恢复Hive文件,但是效果有显著的差别。首先统计全部被恢复Hive文件的个数,文件大小,HBIN块、项和值的个数,如表4.12所示。
通过表4.12可以看到,本系统可以把全部需要的Hive文件恢复出来,并且Hive文件的项和值等数据没有丢失。本系统恢复的文件总大小要小于原有文件的大小。因为本系统是根据Hive文件头部信息来确定文件大小的,操作系统分配给Hive文件的大小有时候比Hive文件头部块中的标注的文件大小要大,尾部多余的数据没有任何意义。然而,WinHex恢复的文件数量超过原始文件,原因是系统中含有和Hive文件相似的文件,它把这些文件恢复出来了。而且WinHex只能获取固定大小的文件,产生的多余数据,有些不属于Hive文件,有些属于其他Hive文件。最重要的是当Hive文件发生分片时,WinHex不能成功找到分片。因此可以证明,我们提出的Hive文件恢复算法是准确且有效的,能够解决实际遇到的问题。其次,统计分片Hive文件的恢复情况,其中WinHex实际值表示WinHex恢复的数据中真正属于该Hive文件的值。如表4.13所示。
通过表4.13可以知道,本系统能够把DEFAULT中分片找(本文转载自
www.yzbxz.com 一枝笔写作网)到,并正确的和其它分片拼接一起。对该文件的恢复是准确的。但是,WinHex有部分数据是丢失的,究其原因是它只能找到DEFAULT文件的第一个分片,丢失了第二个分片。同样对于domex2的NTUSER.DAT文件,本系统可以正确的把全部数据恢复出来,但是WinHex就只能回复部分数据。恢复结果如表4.14所示。
4.结论
本文在结合前人研究的基础上,利用Windows注册表Hive文件的内部结构特征,提出了一种算法来恢复Hive文件。实验表明该算法能够提高Hive文件恢复效率,减少误报。
(责任编辑:一枝笔写作事务所)