基于ntfs的已删除文件树的研究
鍪。塑一墨凰
基于N TFS的已删除文件树的研究
张松林
(盘锦职业技术学院,辽宁盘锦124010)
[摘要]详细分析了N TF S(N ew Technol ogyV i l eSys t em)文件系统的基本结构,深入剖析了其元数据文件类型、M FT(M as t er Fi l e Tabl e)头、索引、N T FS文件结构等基冬数据结构。提出了先建立索引树再插入已删除文件的已删除文件树生成方法.并对N T FS索引目录树建立已删除文件对应目录树这个方面进行了研究。对如何建立N TFS索引目录树和已删除文件对应目录树给出了相应的算法.并对算法效卒提出分析,给出优化方案。
[关键词]N T FS;元数据文件;索引目录树;删除文件;教据恢复
T FS是微软开发的具有较好容锴l生和安全性的文件系统。越来越多的用
户在安装操作系统的时候将磁盘文件格式设置为N TF So由此,N TF S
下删除过的文件和目录的恢复成为数据恢复技术的热点。N T FS下数据
恢复技术的实现需要两步,首先需要重建删l涂,h t的文件目录树,然后根
据文件目录树做出恢复。重建删除过的文件目录树又需要先考虑建立存
在的文件目录树,然后将删除过的文件和目录依据一定的算法插入到文
件目录树中。本文阐述的就是整个删除过的文件目录树的重建。本文中
提到的删除过的文件都是用Shi ft+D e l e t e删除的文件,或者从回收站
清空的文件。
1N T FS的基本数据结构
N TF S是以卷为基础的,而卷是建立在磁盘分区上的。当用户将一
个分区格式化为N T FS分区时,就建立了一个N T FS卷。而卷的组成单
元卷因子(就是通常所说的簇)的大小和卷的大小有关。N T FS卷大小
和簇大小关系如下图所示:如何恢复回收站清空的文件
”:黼t张势e一
静:挪霹卜2错瓣》奠《撼’鞠{糖l 瑚溶∞I一淄吗;r
图1N TFS卷大小和翳铁小关系表
N TF S和F A Tl6、F A T32一样,第一个扇区为引导扇区,其中有
N T FS分区的引导程序和一些B PB参数,在引导扇区后面是15个N T LD R区域,这个区域实际是引导程序的一部分。在N TL D R区域后面是M FT,每个M阿占2个扇区,即1k的空间,N TFS文件系统分配给M F T区域约占据磁盘空间的12%,剩余的磁盘空间用来存放用户的文件。在数据区中间还有一个区域用来存放M F T前几个数据文件的
备份。N T F S总体结构图如下所示:
f。丽’j?W。卜再1
{
F_●“—1■—一
i.:…i……i……………:二一………一{
{o—污鬲:∥
,箍:擘r t膏————i?::五万;巧。
‘f0
………““
圈2N TI S总体结构图
N T FS引导分区的BP B参数有几个在数据|疚复中很重要的。偏移03H位置有N T F S字符串用来判断是否是N T FS分区。偏移O B H位置一般为O x200,标志每扇区字节数。偏移28H位置开始8个字节为扇区总数。偏移30H开始8个字节为$M FT的起始逻辑簇号。偏移38H 开始8个字节为$M F T前几个数据文件的备份的起始逻辑簇号。
M FT元数据文件有16个,其中有几个在数据恢复中很重要。
$M FT为主控文件表本身。$M FT M∽为主控文件表的部分镜像,S Root为根目录,s B i t m a p为位图文件,记录了卷中簇的分配情况。
在一个N TF S卷中的文件的所有的信息,包括文件数据在内,都被认为是文件的属性。文件属性有16种,其中0x30属性为文件名属性:0x80属性为文件:0x90属性为索引根属性:0xA0属性为索引分配属性:0xB0属性为位图属性。
266
2010年4月(_11
每个文件属性都有一个属性头,这个属性头包括了一些该属性的重要信息,如文件删除标志、目录标志、属性类型、属性大小、名字以及是否为常驻属性。所谓常驻属性就是所有直接存放在M FT中的属性,比如标准信息属性和根索引属性,以及一些小文件的$D A TA属性等。因此属性头的结构依赖2个因素,一个是属性头中是否有属性名,另一个因素是该属性是否为常驻属性,这2个属性可以排列组合成4种不同的情况。这4种情况在程序定义结构时,要取它们公用的数据项,对它们私有的数据项采取联合的方法进行定义,这样结构的重用性得到提高。
N TF S中还需要介绍的—个重点数据结构为索引。索引是父目录和子目录联系的重要数据结构。当—个目录包含的子目录数太多,在目录的0x90属性里面不能存下来的时候,就会将其它子目录项用索引数据结构来表示,在0x90属性里面会给出索引数据的起始簇号和索引所占簇号的大小,然后就可以对应索引结构读出子目录的信息。
索引数据结构包括标准索引头和索引项。索引头比较重要的数据项有偏移0,总是IN D X,偏移0x18,索引项的偏移,偏移O xl C,索引项的大小。索引项里面比较重要的数据项有偏移O,该文件的M F T 参考号,偏移0x10,该文件父目录的M FT文件参考号,偏移0x50文件名的长度,偏移0x51文件名的命名空间,偏移0x52文件名。
2N T FS索引目录树建立
N TF S文件格式具有驭元数据文件,它保存了该卷根目录下所有文件和目录的索引。N T FS索引目录树的建立就是以吼元数据文件为基础的。这个索引且录树是未删除的文件和目录组成的目录树,它是建立删除的文件目录树的基础,因为删除的文件目录树就是将删除过的文件和目录添加到未删除的文件和目录中组成的。
由N TFS的B PB参数可以得到$M F T元数据文件的逻辑起始扇区qw M F TSt a rt C l ust e r,根据瓢元数据文件是第6个元数据文件,S M F T 元数据文件是第1个元数据文件,每个元数据文件占2个扇区,所以从瓢元数据文件的逻辑起始扇区的计算公式为q w St ar t C l us t er =cl w M FT St ar t C l us t er+2’qw M FT N um o这里q w M FT N um主要是M F T文件的文件参考号,每—个文件都有一个M FT参考号,这个文件参考号是唯一的,初始化时q w M FT N um=5,到了甄逻辑起始扇区后,根据M F T头到第—个属性的偏移地址,然后判断该属性类型的值,直到0x30属性,记录下文件名的逻辑偏
移地址和文件名大小,继续按照属性大小偏移,并判断属性类型的值,直到0x90属性,在0x90属性里面,可以通过属性头到索引根,然后到索引头,最后到索引项,从中取出子且录的M FT号,如果索引项太多O×90属性存储不完,会在O xA O属性中给出索引的起始簇地址和索引所占簇的大小。然后通过任意M FT号的逻辑起始扇区计算公式可以得到该M F T 号逻辑起始扇区地址,通过该地址就可以出以该子目录为父目录的子目录的索引项,以此类推,可以得到所有基于N TF S索引的目录树。N TF S 索引目录树的实现算法如下所示:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。