APP下载

探讨基于Winhex的NTFS文件提取方法

2018-10-31苏神保

智能计算机与应用 2018年6期
关键词:扇区记录表文件夹

苏神保, 刘 丹

(湖南商务职业技术学院, 长沙 410205)

1 Winhex软件简述

Winhex是X-Ways公司开发的一款以通用的十六进制编辑器为核心,专门用来应对计算机取证、数据恢复、低级数据处理、以及IT安全性、各种日常紧急情况的高端工具,多是针对检查和修复各种文件、恢复删除文件、硬盘损坏、数码相机卡损坏造成的数据丢失等情况,在数据恢复领域具有广泛应用。其常用功能包括查看、编辑和修复磁盘分区,支持的磁盘分区类型有MBR、GPT、APM等,支持的文件系统有FAT16、FAT32、NTFS、exFAT、HFS+、EXT3、EXT4等。不同的文件系统,其数据存储结构也各有不同。

本文即以NTFS文件系统为例,分析其文件存储原理并通过实验的方法识数寻踪,在数以亿计的十六进制数中找到研究所需要的文件并准确提取。

2 NTFS文件系统结构分析

NTFS (New Technology File System)是Windows NT环境的文件系统。新技术文件系统是Windows NT家族(如Windows 2000、Windows XP、Windows Vista、Windows 7和Windows 8.1)等的限制级专用的文件系统(操作系统所在盘符的文件系统必须格式化为NTFS的文件系统)。NTFS取代了老式的FAT文件系统,其优点就在于安全性和稳定性极其出色,在使用过程中不易产生文件碎片,同时还提供了容错结构日志,可以将用户的操作全部记录下来,从而保护了系统的安全。

当用户将硬盘的一个分区格式化为NTFS分区时,就建立了一个NTFS文件系统结构。该文件系统和其它文件系统一样,都是以簇为基本单位对磁盘空间和文件存储来展开管理的。簇通常用大写字母C表示,扇区用S表示,一般地1 S=512字节,每簇扇区数根据磁盘大小及文件系统的不同而各不一样。在NTFS文件系统中,当分区大小大于2 GB时,每簇扇区数为8。NTFS文件系统的结构设计如图1所示。

图1NTFS文件系统结构图

Fig.1NTFSfilesystemstructure

一个NTFS系统是由引导扇区、主文件表MFT和数据区组成;另外,MFT有一部分重要备份在数据区。

3 NTFS文件系统文件提取实验

为了能更好地说明NTFS文件系统的结构及其数据存储原理,这里在Windows系统下建立一个大小为16 G的MBR虚拟磁盘,并以NTFS文件系统对其进行格式化,根目录下放置一个文件名为word的文件夹,子目录也就是文件夹中存放有1 000个docx文件,实验要求准确定位108.docx文件并将其提取出来(所需定位及提取的文件可以修改,本文以108.docx为例)。

根据NTFS文件系统结构,首先从上至下开始搜索46494C文件记录表的特征标志,在2号簇、也就是16号扇区找到$MFT的镜像,此位置为$MFT的部分镜像,只备份了前8个扇区(4个元文件)。继续向下搜索到786432簇、也就是6291456号扇区找到$MFT元文件。如果该分区的DBR正常的情况下也可以在DBR的0030-0037偏移处找到$MFT所在的簇数。当然,DBR中还记录了另外一些较为重要的数据,如分区起始位置、分区大小、每扇区字节数、每簇扇区数等。限于篇幅,文中将不再一一赘述。

NTFS文件系统总共由16个元文件构成,都是在分区格式化时写入到硬盘的隐藏文件中的(以$开头),而这同时也是NTFS文件系统的系统信息。因每个文件记录表占用的大小空间为1 kB,也就是2个扇区。根据NTFS元文件的定义,将可以在找到$MFT后向下跳转10个扇区、即6291466号扇区到达根目录文件记录表$root。设计详情如图2所示。

通过观察其A0属性的数据流11012C可知(图2中小方格标注),根目录起始簇号为44(2C转为十进制),大小占用1个簇,跳转至44号簇找到其根目录(Root directory),发现根目标标志性特征494E44。根目录中除了记录有各个元文件的目录外,其余的就是用户数据目录项,根据文件名依次向下查看,发现word字符串后并可判断其文件记录号为23(图3中已标注,十六进制,转为十进制为35),具体如图3所示。

图2 根目录文件记录表(部分截取)

根据文件记录表的工作原理可知,word文件夹的文件记录表位于6291456+35*2=6291526号扇区,跳转至6291526号扇区,找到word文件夹的文件记录,其文件记录的A0属性中的3101DFD40B记录了该word文件夹的起始簇号为775391号簇。设计截取的效果示意如图4所示。

图4 word文件夹的文件记录表(部分截取)

跳转至775391号簇、即6203128号扇区,该扇区则为该文件夹所在的扇区。通过观察这个文件夹扇区结构,发现里面存放有1 000个docx文件的文件名称,且看到了熟悉的文件目录项标志494E44,据此可以向下拖动光标找到研究所需要的108.docx的文件目录项(如图5所示),也可知其文件记录号为2F000000、即为47。因文件目录项所占扇区有限,若向下拖动光标后仍无法找到所需文件的文件目录项,可以采取搜索文本工具(find text)中搜索字符串(Unicode,如998.docx)的方法进行查找。特别地,如果所查找文件的文件名中包含特殊字符、如中文汉字等,则可以通过相关工具将特殊字符转为Unicode后再开启此后的查找进程。

图5 word文件夹子目录项(部分截取)

图5中,不仅列出了108.docx文件的文件目录项,也用小方格标出了其文件记录号,同时也标注了其前一文件107.docx和后一文件109.docx的文件记录号。由此不难发现,这些记录号是按规律连续排列的,这也充分验证了研究所查找的文件记录号是完全正确的。

跳转至6291456+2*47=6291550扇区即可找到108.docx文件的文件记录(如图6所示),根据文件记录中各属性的定义,其中的80属性为非常驻属性,且80属性记录了该文件的起始位置与大小,单位为簇,数据流为3103F5D40B(如图6中小方格标示);31表示数据流结构,后三个数字F5D40B代表文件的起始簇号为775413号簇,中间的03代表文件大小占用3个簇,跳转至775413号簇,找到该文件的起始扇区775413*8=6203304S,将其作为选块起始位置,并将6203304+3*8-1=6203327S末尾作为选块结束位置,且发现6203328S为下一文件的文件头,复制选块至新文件,以108命名,再加上文件的后缀名docx,最后将文中提取出来的文件与原先放置进去的108.docx号文件进行对比后发现文件内容一致,至此该文件就已完好地提取出来。

图6 108.docx文件的文件记录80属性(部分截取)

4 结束语

在数据恢复领域,任何数据的存储都是具有一定规律的。对于NTFS文件系统,在分区表或者MBR被人为误GHOST、误格式化或者病毒侵害的情况下,只要剖析寻出其文件系统的结构,既可以使用在硬盘MBR中虚拟分区的方法来恢复分区从而恢复分区文件,也可以使用本文中提及的方法,直接提取某个重要文件。

直接提取文件的关键在于要明晰NTFS文件系统文件存储的基本原理,一般来说有根目录和子目录之分,但设计原理大致类似。都需要先通过根目录的文件记录表找到根目录,再通过根目录找到根目录下层文件的文件记录号,通过准确的文件记录号就可以找到相应文件的文件记录,文件记录的相关属性中会有该文件的起始位置以及大小,按照Winhex定制的方法提取文件即可。

本文中所讨论的文件提取方法只针对NTFS文件系统结构,若是FAT32或者exFAT文件系统,因其文件系统结构和数据存储原理又各自不同,故而仍亟待后续研究的进一步探索发现。

猜你喜欢

扇区记录表文件夹
2022.04.21~2022.05.20国外运载火箭发射记录表
分阶段调整增加扇区通行能力策略
2022.1.21~2022.2.20国外运载火箭发射记录表
基于复杂网络理论的空域扇区网络特性及抗毁性分析
2021.01.21~2021.02.20 国外运载火箭发射记录表
Fast Folders,让你的文件夹四通八达
2020.7.21~2020.8.20国外运载火箭发射记录表
空域扇区网络级联失效抗毁性及优化策略
U盘故障排除经验谈
摸清超标源头 大文件夹这样处理