您好,欢迎来到刀刀网。
搜索
您的当前位置:首页基于ntfs的已删除文件树的研究

基于ntfs的已删除文件树的研究

来源:刀刀网
鍪。塑一墨凰

基于

NTFS的

已删除文件树的研究

张松林

(盘锦职业技术学院,辽宁盘锦124010)

[摘要]详细分析了NTFS(NewTechnologyVileSystem)文件系统的基本结构,深入剖析了其元数据文件类型、MFT(MasterFile

Table)头、索引、NTFS文件结构等基冬数据结构。提出了先建立索引树再插入已删除文件的已删除文件树生成方法.并对NTFS索引目录树建立已删除文件对应目录树这个方面进行了研究。对如何建立NTFS索引目录树和已删除文件对应目录树给出了相应的算法.并对算法效卒提出分析,给出优化方案。

[关键词]NTFS;元数据文件;索引目录树;删除文件;教据恢复TFS是微软开发的具有较好容锴l生和安全性的文件系统。越来越多的用

户在安装操作系统的时候将磁盘文件格式设置为NTFSo由此,NTFS

下删除过的文件和目录的恢复成为数据恢复技术的热点。NTFS下数据

恢复技术的实现需要两步,首先需要重建删l涂,ht的文件目录树,然后根据文件目录树做出恢复。重建删除过的文件目录树又需要先考虑建立存在的文件目录树,然后将删除过的文件和目录依据一定的算法插入到文件目录树中。本文阐述的就是整个删除过的文件目录树的重建。本文中

提到的删除过的文件都是用Shift+Delete删除的文件,或者从回收站

清空的文件。

1

NTFS的基本数据结构

NTFS是以卷为基础的,而卷是建立在磁盘分区上的。当用户将一个分区格式化为NTFS分区时,就建立了一个NTFS卷。而卷的组成单元卷因子(就是通常所说的簇)的大小和卷的大小有关。NTFS卷大小和簇大小关系如下图所示:

”:

t张势e一静:挪

’鞠{糖l

霹卜2错瓣瑚溶∞I一

》奠《撼

淄吗;r

图1

NTFS卷大小和翳铁小关系表

NTFS和FATl6、FAT32一样,第一个扇区为引导扇区,其中有NTFS分区的引导程序和一些BPB参数,在引导扇区后面是15个NTLDR区域,这个区域实际是引导程序的一部分。在NTLDR区域后

面是MFT,每个M阿占2个扇区,即1k的空间,NTFS文件系统分

配给MFT区域约占据磁盘空间的12%,剩余的磁盘空间用来存放用户的文件。在数据区中间还有一个区域用来存放MFT前几个数据文件的备份。NTFS总体结构图f。如下所示丽’j?W:

卜再1F_●。

i.:…i……“i……………:二一………一—1■—{

{

{o—污鬲:∥,箍:擘‘f0

rt膏————i?::五万;巧。

………““圈2

NTI

S总体结构图

NTFS引导分区的BPB参数有几个在数据|疚复中很重要的。偏移

03H位置有NTFS字符串用来判断是否是NTFS分区。偏移OBH位置一般为Ox200,标志每扇区字节数。偏移28H位置开始8个字节为扇区总数。偏移30H开始8个字节为$MFT的起始逻辑簇号。偏移38H开始8个字节为$MFT前几个数据文件的备份的起始逻辑簇号。

MFT元数据文件有16个,其中有几个在数据恢复中很重要。$MFT为主控文件表本身。$MFTM∽为主控文件表的部分镜像,SRoot为根目录,sBitmap为位图文件,记录了卷中簇的分配情况。

在一个NTFS卷中的文件的所有的信息,包括文件数据在内,都被认为是文件的属性。文件属性有16种,其中0x30属性为文件名属性:0x80属性为文件

:0x90属性为索引根属性:0xA0属性为索

引分配属性:0xB0属性为位图属性。

2010年4月(_11

每个文件属性都有一个属性头,这个属性头包括了一些该属性的为常驻属性。所谓常驻属性就是所有直接存放在MFT中的属性,

和根索引属性,以及一些小文件的$DATA属性等。

性头的结构依赖2个因素,一个是属性头中是否有属性名,另一否为常驻属性,这2个属性可以排列组合成4种不同。这4种情况在程序定义结构时,要取它们公用的数据项,对它行定义,这样结构的重用性得到提NTFS中还需要介绍的—个重点数据结构为索引。索引是父目录和

0x90属性里面不能存下来的时候,就会将其它子目录项用索引数据

0x90属性里面会给出索引数据的起始簇号和索引所占索引数据结构包括标准索引头和索引项。索引头比较重要的数据0,总是INDX,偏移0x18,索引项的偏移,偏移OxlC,索大小。索引项里面比较重要的数据项有偏移O,该文件的MFT0x10,该文件父目录的MFT文件参考号,偏移0x50文移0x51文件名的命名空间,偏移0x52文件名。

2

NTFS索引目录树建立

NTFS文件格式具有驭元数据文件,它保存了该卷根目录下所有文NTFS索引目录树的建立就是以吼元数据文件为基础由NTFS的BPB参数可以得到$MFT元数据文件的逻辑起始扇区MFTStartCluster,根据瓢元数据文件是第6个元数据文件,SMFT

1个元数据文件,每个元数据文件占2个扇区,所以从逻辑起始扇区的计算公式为qwStartClusterwMFTStartCluster+2’qwMFTNumo这里qwMFTNum主要是FT文件的文件参考号,每—个文件都有一个MFT参考号,这个文件qwMFTNum=5,找到了甄逻辑起始扇区MFT头找到第—个属性的偏移地址,然后判断该属性类型的0x30属性,记录下文件名的逻辑偏移地址和文件名大小,继0x90属性,在属性里面,可以通过属性头找到索引根,然后找到索引头,最后引项,从中取出子且录的MFT号,如果索引项太多O×90属性OxAO属性中给出索引的起始簇地址和索引所占簇的大MFT号的逻辑起始扇区计算公式可以得到该MFT辑起始扇区地址,通过该地址就可以找出以该子目录为父目录的子引项,以此类推,可以得到所有基于NTFS索引的目录树。TFS索引目录树的实现算法如下所示:

重要信息,如文件删除标志、目录标志、属性类型、属性大小、名字以及是否比如标准信息属性因此属个因素是该属性是的情况们私有的数据项采取联合的方法进高。

子目录联系的重要数据结构。当—个目录包含的子目录数太多,在目录的结构来表示,在簇号的大小,然后就可以对应索引结构读出子目录的信息。

项有偏移引项的参考号,偏移件名的长度,偏件和目录的索引。的。这个索引且录树是未删除的文件和目录组成的目录树,它是建立删

除的文件目录树的基础,因为删除的文件目录树就是将删除过的文件和

目录添加到未删除的文件和目录中组成的。

qw元数据文件是第瓢元数据文件的=clM参考号是唯一的,初始化时后,根据值,直到续按照属性大小偏移,并判断属性类型的值,直到0x90找到索存储不完,会在小。然后通过任意号逻目录的索N266

应用科技

k一曼j

基于索引树的已删除文件树建立的算法如下所示:

j

冀黜’眈i鐾壤

譬*_,蔬一“Ⅵ’。潮

”…

£?斗;i。1

{.

i州瞄一“琏葡‘奠“”。謦却i“?嚣一

;{r二::?置!=+■…{

,;

叠器曩一一卿!《每彬一

…….一,

;{“?”,;纛-荔二.=一

7

:。?o“…一j

:.!磐』

::”《:、一吵jj”#一^

^

i

,wM幽㈣{

…一。.,”;:嚣徽”;

f.:i麓÷一蔓1■

~面蠹疆晦l^赫:。:.鼍k*‘t}}H豁一

。邪z*Zk矗受《m

,翟≯:j?笳:,

糕器‘哦.‰

曼蹶嚣?妻露期

图4

?厂i,‘嘞?’寥…』

m

f::参‘”j

NTFS基于索B恻的已删除过的目录例的吏现算法

该算法的执行时间,理论上应该大于将磁盘一个分区的数据读到

图3NTES索引目录鼬班帮冤算法

3

NTFS下已删除文件树的建立

内存中的传输时间,实际上要远大于这个值,用P43.0,512M内存的机器读17G大小的磁盘,耍花费3个小时的时间。该算法执行时间的瓶颈在于磁盘搜索区域花费的时间。由于目前多核的计算机已经开始上

在索引目录树建立起来以后,可以将删除过的文件和目录添加到索引目录树中形成已删除文件树。已删除的文件和目录它们的索引项都将从索引中被清空掉,不可能从索引中得到删除的文件和目录。在NTFS下,删除过的文件和目录不像FAT32那样标记为E5,它的半U断是通过MFT头偏移16H处的MFT文件标志位来判断的如果为0表示文件被删除:为1表示文件正使用:为2表示目录被删除:为3表示目录正使用。在文件被删除过后,它所占的MFT分区就会被标记为空分区,可以被新的MFT文件占用。另外一种复杂的情况是MFT分区最大可以占磁盘分区的12%,但是当磁盘中数据区(见前图2中)占满时,会发生占用MFT分区的情况,这时候,会有一些被标记为空的

市,所以可以用多线程的方式对算法进行优化,多线程在多核上的调度

是由计算机操作系统完成的,程序员只需要定义好线程数,设置临界区就可以了。在IntelCore2186G、1G内存的机器上,执行时间花费了2个小时的时间,效率提高了30%。

4结语

本文首先介绍了NTFS下的基本数据结构,包括卷、簇、扇区之间的关系、NTFS总体结构图、NTFS中的BPB参数、16个基本的元数据文件、MFT文件结构、索引结构,并指出这些结构中比较重要的数据参数。然后介绍7lf-T-元数据文件趴和索引结构的索引目录树的生成算法。最后介绍了基于索引目录树的已嗍狳文件树的生成算法,并给出算法分析和优化方案。

本文创新点:提出基于索引目录树的已删除文件树的慨念。设计

MFT分区被占用,这就是为什么在对数据区进行攫索时同样会搜出被

删除的MFT文件的原因。

综合以上情况考虑,已删除的文件树的算法可以这样建立:从$MFT开始进行搜索,直到磁盘数据区结束,将删除过的文件,放到文件夹中保存起来。然后对文件夹进行分析,如果父目录没有被删除就将删除过的文件插入到父目录下做为孩子节点,如果父目录被删除,那么就查找父目录的父目录是否被删除,这时候会出现两种情况,一种是在

出&t-T-元数据文件&和索引结构的索引树的生成算法。设计出基于索引

树的已删除文件树的算法。

索引目录树中最终找到了父目录,另外一种是被删除过的文件的父目录

被删除了,但是被覆盖了,这样会出现在索引树上找不到对应的父目录这种情况,这个时候,就需要单独列出目录将删除过的文件保存起来。

删除过的文件保存格式如下表所示:

lIFT号个数MFT号值

值=}4^+

中图法分类号:TP393文献标识码:A

作者简介:张松林。1976年生,男,辽宁盘锦人,沈阳航空工业

学院计算机应用专业,工学学士,主要研究方向为计算机网络维护与应

用。

表1删粥撒体保存格式

蝴(文件买际太小)++4蝌(文

掺考文献】

…1涂彦晖.戴士剑擞据安全与编程技术.北京清华大学学研大厦清华大学

出版社.2[X)5.

值Ⅲ}十#4十}}#幸}÷^#……

(,目录号‘)#^*#(文件创建时间)$#删(文件最后访问时间)¨*}革(^FT最后修改时闻)#$,础(文件最后修改时阀)H+t#(文件钾配太小)t+

l$$¨t盯T

l值)t

件名长赝j}+t+#(文件名绝对地址,+*t#(目录标记l文阵

12】2戴_士剑凉彦晖.数据恢复技术(第2版)北京:电子工业}“版社.2005.

【3】王兰莫居锦武.NTFS文件系统结构分析,2006f414孙维莲颜世公.李忠瑞.NTFS文件系统根目录结构。2006.

标i己oj+#(删陈标记i存在标记o)}#

(上接第265页)

提高效率也可配备数台,同时测量。

333数据采集

用GPS控制器把椭球参数、投影参数、数据链的波特率等信息设置在GPS接收tfLY-,把测量方式设置为RTK,启动基准站,基准站上

通过电-y--T=簿或便携式计算机记录并同时输人特征码。

33.4内业处理

在数据采集结束后,便可以将数据带回,传人到奔腾N计算机。

再利用目前所流行的MapGIS或CAD等软件编辑制作公路测量所需的带状数字地形图、数字纵断面图、数字横断面图及公路带状数字地面模

型(OTM)等专题图。

4结语

只需一人即可操作。基;佳站剥顷利实施GPS—RTK采集数据的关键之一,地面数据的采集主要由各流动站进行。应该注意的是,在流动站开

始测量前,应先在另一已知点上做校核观测,核对无误后再开始测量。

在当前,GPS定位系统已经发展到了一个崭新阶段,未来的几年内。GPS连续观测基准站将会遍布全国,任何地区都可以实现实时测

量。GPS作为一种便捷的科学工具也将在公路测量中获得更广泛的应用o

在测量前应先进行初始化工作,即在某一起始点上观测分钟,然后才可进行

采集工作。流动站仅需一人持对中杆在待定点上立1—2秒

的时间,即可获得碎部点的兰维坐标。在点位精度合乎要求的情况下,

267

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务