hottle

更新时间:2023-01-04 07:06:18 阅读: 评论:0


2023年1月4日发(作者:经济师培训学校)

第29卷第2期计算机工程与设计2008年1月

V01.29No.2ComputerEngineering

and

Design

Jan.2008

WindowsNTFS下数据恢复的研究与实现

赵双峰,费金龙,刘

楠,武东英

(解放军信息工程大学信息工程学院,河南郑州450002)

摘要:针对由主观或客观因素造成计算机中数据丢失的情况,提出一种WindowsNTFS文件系统下数据恢复的实现方案。

介绍了NTFS文件系统在磁盘上的结构,重点分析了NTFS文件系统的核心——主文件表MFT,文件记录的结构和文件的几

个关键属性。通过分析文件删除前后文件记录中属性值的变化,详细阐述了数据恢复的具体实现。

关键词:NTFS文件系统;主文件表;文件记录;数据流属性;数据恢复

中图法分类号:TP309.03

文献标识码:A文章编号:1000.7024(2008)02.0306.03

Researchand

implementation

ofdata

recoveryonWindowsNTFS

ZHAO

Shuang—feng,FEIJin—long,LIUNan,WUDong—ying

(CollegeofInformation

Engineering,PLA

Information

EngineeringUniversity,Zhengzhou450002,China)

Abstract:The

datain

computeris

lost

because

ofthesubjectiveandobjectivereasons.To

solvethis

problem,allimplement

scheme

ofdata

recovery

onWindowsNTFSfile

system

isproposed.ThestructureofNTFSfile

systemondisk,file

recodeandseveral

key

of

file

attributesareintroduced.Byanalyzing

thechangeoftheattributevaluein

file

recodeafterthefilehasbeen

deleted,the

concrete

implementofdata

recovery

isillustrated.

Key

words:NTFSfilesystem;master

file

table;filerecord;dataattribute;datarecovery

O引言

随着信息技术的不断发展,计算机越来越多地参与到人

们的工作与生活中,在社会和生活中扮演着日益重要的角色。

越来越多的企业、商家、政府机关和个人通过计算机来获取信

息、处理信息,同时将自己最重要的信息以数据文件的形式保

存在计算机中。一旦我们的电脑或者软件系统不可避免的出

现差错从而导致数据丢失,如何能够迅速而正确地进行数据

恢复也就成为了至关重要的问题。这就使得数据恢复技术不

论对个人、企业还是国家都显得日益重要起来。目前,Windows

操作系统在个人桌面系统中占有很大分量,NTFS文件系统是

Windows操作系统主要使用和大力发展的文件系统。本文针

对NTFS文件系统的文件删除和恢复的原理进行分析。

1NTFS磁盘分析

在NTFS文件系统中,文件存取是按簇进行分配,一个簇

必须是物理扇区的整数倍,而且总是2的整数次方。簇的大

小在使用格式化程序时会由格式化程序根据卷大小自动的进

行分配。NTFS使用逻辑簇号“;(109icalclusternumber,LCN)和

虚拟簇号(virtualclusternumber,VCN)来进行簇的定位。LCN

是对卷中的所有簇从头到尾进行顺序编号,起始的LCN是0;

VCN则是对属于具体文件的簇从头到尾进行顺序编号,以便

于引用文件中的数据,VCN以0为起始值。

1.1NTFS分区的磁盘空间分配

NTFS分区由两大部分组成:第l部分包括分区引导扇区

和主文件表(masterfiletable,MFT);第2部分为文件存储区域,

在文件存储区中部存放的是MFT前4个(或更多)元数据文件

备份脚,如图1所示。

引导

扇区

MFT前4个(或多个)

原数据文件备份

主文MF件T

文件存储区f文件存储区

图INTFS分区磁盘空间分配

NTFS把磁盘空间的前12%分配给MFT,为保持MFT元

文件的连续性,MFT对这12%的空间享有独占权,余下的88%

的空间被分配用来存储文件。通过研究发现,随着文件数量

的不断增长,MFT区域不够使用时,系统会另外分配一块(或

者多块)空间作为MFT使用。这些区域(建立文件系统时由操

作系统划分的MFT区域作为第1个MFT)在逻辑地址空间上

是连续的,而在物理地址空间上则不一定连续。确定MFT区

收稿日期:2007—04-23

E—mail:hottlel23@eyou.tom

作者简介:赵双峰(1983一),男,河南南召人,硕士研究生,研究方向为网络信息安全;费金龙(1980一),男,河南郑州人,助教,研究方向

为网络信息安全;刘楠(1981一),女,湖北襄樊人,博士研究生,研究方向为网络信息安全;武东英(1965一),女,河南新安人,副教授,

研究方向为网络信息安全。

・—・306・——

万方数据

域的物理地址对磁盘扫描是很重要的。

1.2分区引导扇区

分区引导扇区保存了有关卷文件结构的信息及启动引导

程序,主要涉及的是BPB参数表。BPB表中的参数是建立文

件系统时由操作系统生成的。其中数据恢复时要用到相关的

参数有MFT区域的起始簇号StartClustcrofSMFT,每簇所占扇

区数SectorsPerCluster,每扇区字节数BytesPerScctor。

1.3主文件表MFT

主文件表MFT是NTFS文件系统的核心,文件通过MFT

来确定其在磁盘上的存储位置。主文件表是一个对应的数据

库,由一系列文件记录组成。主文件表本身也有它自己的文

件记录。每个文件记录的大小固定为lKB。

文件记录在主文件表MFT中从0开始编号,MFT的前16

个文件属于系统文件,也称为元文件,用于存放系统的元数

据。这些元文件的名字都以“¥”开始,是隐藏文件嘲。这16个

文件是NTFS文件系统中惟一在MFT表中具有固定地址的文

件,其它文件和目录的文件记录可以存放在MFT表中的任意

地方。MFT的前16个元数据文件非常重要,为防止数据丢失,

NTFS系统在文件存储区中部对它们进行了备份。

MFT中第1个记录就是¥MFT自身,它记录着所有文件和

目录的所有情况,类似于FAT文件系统下的FAT+FDT的功能。

第7个记录是位图文件¥Bitmapt4JoNTFS卷上簇的使用情

况都保存在这个位图文件中,其中每一位代表卷中的一簇,标

示该簇是空闲还是已分配。数据恢复时要用至lJ¥Bitmap去判

断文件数据区的完整性。

NITS卷上的每个文件都有一个“位的称为文件引用号

的惟一标识棚。文件引用号由两部分组成:文件号和文件顺序

号。文件号为低48位,表示该文件在MFT中的位置。

2NTFS文件系统下数据恢复的研究

NTFS的思想就是磁盘上的所有数据都是文件,每一个文

件在MFT中都有一个记录。通过研究发现,对于一般的文件,

在文件创建时,在MFT中为文件生成一个文件记录;在文件

删除时,文件记录并没有被删除。在数据恢复过程中,通过分

析文件记录以及记录中的属性,来确定文件是否已删除,并获

取数据恢复时所需要的文件信息。

2.1MFT文件记录分析

NTFS将文件作为属性/属性值的集合来处理。当属性值

能直接存放在文件记录中时,该属性就称为常驻属性。

如果一个属性(如数据流属性)太大而不能存放在只有

1KB大小的MFT文件记录中,那么,NTFS将从MFT之外的位

置分配区域。这些区域通常称为一个运行,用来存储属性值。

值存储在运行中而不是在MFT文件记录中的属性称为非常

驻属性嘲。NTFS决定一个属性是常驻还是非常驻的。

NTFS文件记录结构如图2所示。

2.2文件记录头部

文件记录由“46494C45”开始州,即ASCII码的“FILE”开

始,永远不变。在记录头部中,从偏移0x16开始的两个字节

是标志字节,第l位是删除标志,第2位表示文件/目录,00H

表示删除的文件,0Ill表示正常的文件,02H表示删除的目录,

图2NTFS文件记录结构

03H表示正的目录;从偏移0x2CH开始的4个字节是文件号

的低32位。

2.3文件名属性分析

文件名属性是常驻属性,属性的类型为0x30,用于存储文

件名。NTFS对文件名几乎没有限制,为支持旧版应用程序,

NTFS为每一个与DOS不兼容的文件名分配一个短的DOS友

好的文件名。因此,如果文件名与DOS不兼容,在文件记录

中将会出现两个文件名属性:一个是记录完整文件名的Ox30

属性(长文件名);一个是记录DOS短文件名的0x30属性(短文

件名)。数据恢复时要获得的是长文件名而不是DOS短文件名。

在文件名属性中还包含有父目录的文件引用号。

2.4数据流属性分析

数据流属性的类型为0x80,其中包含有该属性是否为常

驻的标识位、起始VCN、结束VCN、数据运行的偏移“1等内容。

如果标识位的值为0,表示数据值就存储在MFT文件记

录中,可以在文件记录中直接对数据操作;如果该值为l,说明

数据值存储在运行中,那么从数据运行的偏移处读出数据运

行列表。在数据运行列表中详细记载着每一块数据运行的起

始LCN和该运行所占用的总的簇数,从而可以定位每一个数

据运行,对文件的数据进行操作。

3NTFS文件系统下数据恢复的实现

通过上述的分析和研究,在NTFS文件系统中,文件删除

之后,系统所做的工作是:在文件记录头部中将标志字节置为

00/02H,文件记录的其它属性均没有变化;对于有数据运行的

文件,回收文件所占用的空间,不改变数据区(即数据运行)的

内容,只是将数据运行所占用的簇在元文件¥Bitmap中对应的

位均置为0。由此,提出NTFS文件系统下数据恢复的算法:

扫描主文件表MFT,查找删除文件的文件记录;通过分析文件

记录,确定文件的数据区;对文件的数据区进行完整性判断;

对删除文件进行恢复。技术方案主要分为两个阶段:磁盘扫

描阶段和数据恢复阶段。

3.1磁盘扫描阶段

在磁盘扫描阶段,主要是分析MFF中每一个文件记录,找

出所有删除文件(或目录)的文件记录,重建文件删除前原有的目

录关系,并将文件记录的物理地址记录在数组中,供恢复时使用。

3.1.1获取BPB参数

选中要进行数据恢复的磁盘,打开磁盘(获得一个句柄),

然后读取该磁盘的引导扇区中的BPB参数,获得以下参数:

StartClusterof¥MFT,SectorsPerCluster,BytesPerSeetor。

3.1.2确定MFT区域

根据获取到的BPB参数,移动句柄到MFT的起始位置,

然后读取第1个元文件¥MFT,分析该文件记录中的数据流属

性,找出MFT的所有运行。由于MFT区域存在着物理上不连

续的可能性,因此,确定NTFS分区上的MFT区域,对于查找

出整个磁盘上所有的删除文件是至关重要的。

・——307・——

万方数据

3.1.3获取删除文件的文件记录的物理地址

逐个扫描MFT中的文件记录。具体做法是:读取每个记

录,分析记录,判断记录头部中的标志字节,若为00H/02H,说

明这是删除的文件/目录,将文件记录的物理地址保存在一个

全局的数组中:否则,读取下一个文件记录。

根据前面文件名属性的分析,解析出正确的文件名,将文

件名插入到删除文件列表中。在文件名插入的过程中,根据

记录头部中的文件号和文件名属性中的文件引用号,重建文

件删除前原有的目录关系。

由于每个文件记录的大小是1KB,每次移动旬柄l

KB的

偏移量,读取下一个文件记录,依次循环,直到MFT最后一个

记录。通过实验证明采用直接保存文件记录物理地址的方法,

使得扫描效率有较大的提高。

3.2数据恢复阶段

文件删除后,对于有数据运行的文件,文件原有的数据区

会出现两种情况:①文件的数据区完好,没有被覆盖,文件能

够完整恢复;②文件的数据区已经分配给其它的文件使用,则

文件数据区遭到破坏,文件不能被完整恢复。

在磁盘扫描结束后,就得到了该磁盘上MFT区域中所有

删除文件的文件记录的物理地址。

3.2.1分析数据流属性

选择要恢复的文件,从数组中读出其文件记录的物理地

址,再次访问该文件的文件记录。分析文件记录的数据流属

性,判断该属性是否为常驻属性:若为常驻属性,说明数据值

就在文件记录中,跳过文件数据区完整性判断;否则,则分析

数据运行列表,确定每个数据运行的物理位置,然后判断文件

数据区的完整性。

3.2.2文件数据区完整性判断

在判断数据区完整性过程中,需要用到元数据文件SBit-

map。在NTFS文件系统中,当某个簇分配给一个文件时,不

管该簇的空间是否完全被使用,在¥Bitmap文件中该簇所对应

的标示位置为1,表示已分配给文件使用;如果这个文件被删

除了,那么系统就会回收文件所占用的空间,在¥Bitmap文件

中文件所占用的簇的标示位就被重新置为0,表示空闲簇,可

以分配给其它文件。

通过上述元文件¥Bitmap的作用分析,得到数据区完整性

判断的一种方法:根据前面得到数据运行列表,计算出该文件

所占用的簇。读取¥Bitmap文件,然后查找¥Bitmap文件中相

对应的标示位。如果标示位都为0,说明文件的数据区完好,

可以完整恢复,则数据区完整性判断结束;如果说有一位或多

位不为0,则说明文件的数据区已遭到破坏,文件不能完整恢

复。如果文件的数据区遭到完全破坏,则没有必要进行数据

恢复操作,直接退出;对于有残留数据区(运行中尚且没有被

覆盖的簇)的文件,则可以在残留数据区内进行下一步工作。

3.2-3恢复删除文件

在文件数据区完整性判断之后,对两种不同的情况采取

不同的恢复策略。对于能够完整恢复的删除文件,首先在另

外一块盘区上创建一个新文件,以删除文件的文件名将其命

名。然后将删除文件的数据区的内容逐个字节复制到新文件

的数据区。数据恢复结束。

・—-308———

对于不能够完整恢复的删除文件,残留数据区内可能包

含有用户感兴趣的信息。但是,涉及到具体文件格式,恢复策

略分为以下两种:对于是纯文本格式的删除文件,由于不涉及

文件的格式,则创建一个以删除文件的文件名命名的新文件,

将残留的数据区内容提取出来,复制到新文件的数据区;对于

特殊文件格式的删除文件,由于很多文件的格式目前都是不

公开的,那么将文件的残留数据区内容以二进制的形式提取

出来,结合数据挖掘的思想,从中提取敏感信息。

3.3实现流程图

根据上述的数据恢复算法,实现流程如图3所示。

开始

打开磁盘,获取BPB参数

确定MFT区域

获取删除文件的文件记录的物理地址<运竺兰岁

‘Y

分析数据流属性,获取数据运行I赢茹赢拶据区完整性判断:>一

判断数据区完整性判断蔷

4实验及结果分析

根据上述的研究方案,设计实现NTFS下的数据恢复工

具NTFSSCAN,将其与目前市场上流行的数据恢复软件Final-

DataEnterprisev2.0,EasyReeoveryProfessionalv6.0等做测试对比。

测试环境:CPU:Intel(R)Pentium(R)Processor1.86GHZ;内

存:lGB:操作系统:WindowsXPSP2:硬盘:15GB。实验结果

如表1所示。

表l实验结果

软件名称磁盘扫描时间/s扫描结果/个

NTFSSCAN3230

FinalData4330

EasyRecovery

6830

实验结果表明采用本文提出的数据恢复方法,在效率上

较FinalDataEnterprisev2.0和EasyRecovery

Professionalv6.0两

款软件有优势。恢复出来文件的数目一样的。另外,通过研

究发现,当大量的文件被删除之后,MFT区域的大小有变化,

而¥MFT文件记录的数据流属性只记录当前有效的MFT区域。

因此,在以上工作的基础上,NTFSSCAN对整个NTFS分区进行

了文件记录扫描,以最大限度的获取分区上的删除文件信息。

(下转第332页)

万方数据

图4计算机终端用户发起电话会议

请,如果PSTN接受邀请后,服务器就会发送一个确认帧给参

与会议的各个用户,那么经过提取确认帧中的有关PSTN用户

的相关信息,在各个参与会议的用户信息面板上也会显示出

该PSTN用户的相关信息。此时,发起电话会议的计算机终端

即可以决定开始电话会议。

(4)通过点击会场管理中的开始会议,电话会议就真正

开始了。

(5)接着,发起电话会议的计算机终端就开始接受这两路

语音,进行语音混合,然后将混合好的语音转发为各个参与会

议的终端。那么,在各个参与会议的终端都可以听到用户

的发言。

3.3测试结果

由图5可以看到,在信息面板上能够按照预期设计的一

样,显示出各个参与会议用户的信息,其中MAC地址

00—lI-5B。B6.7B.IC和MAC地址00.01.6C.A2.1F.05分别是参

与电话会议的计算机终端的物理地址,而MAC地址00-

E0-4C-44.72.6C则是电话会议服务器终端的物理地址,用来代

表参与会议的PSTN终端。那么从上图分析可以得知,按照设

计,三方通信功能已经可以实现。

4结束语

本论文提出并设计了一种新型的电话会议系统——基于

包转发的电话会议系统。该方案利用了快速转换设备的包转

发功能以及WinPcap技术的特性以软交换的方式搭建了一种

新型便利的电话会议初级平台,实现了电话会议系统的基

图5PSTN用户参与电话会议

本功能。

设计这样一个系统需要涉及到比较多的技术,工作量也

是相当大。鉴于时间和实验条件的限制,本文所讨论的和设

计的各个项目并没有全部实现,有的项目也正在进行进一步

的改进和修改。但是,本系统中最为关键的混音技术和基于

包转发的多方通话技术已经实现。经过测试平台的测验,证

实本文所做的工作是卓有成效的。

参考文献:

【1】

赵代强.基于数字交换语音技术的多方会议系统【J】.计算机工

程,2004,30(7):87.88.

[2】

施寒潇.IntranetPC终端与PSTN语音交互系统的设计和实现

【J】.计算机工程于设计,2003,24(4):19.22.

[3】

吴平.基于嵌入式以太网的语音通讯系统设计[J】.计算机工程

与应用,2006,42(16):163.166.

【4】吴刚.支持PC终端的数字化语音交换系统的设计【J】.小型微

型计算机系统,2003(8):1549.1551.

【5】李西明,刘伟平,黄红斌.CTI系统中快速转换盒设计方案[J】.计

算机工程与设计,2005,26(5):1110-1112.

[6】许书君,刘伟平,李西明,等.一种基于快速转换盒的以太网电话

交换系统【J】.计算机工程与设计,2005,26(12):3250-3252.

[7】D320E1/640El七号信令语音处理卡程序员手册.东进公司

DOCNO.05.1.O【Z】.

【8】杨树堂,余胜生,周敬利.基于分组网络的多点实时语音混合及

调度算法【J】.软件学报,2001(12):1413.1419.

(上接第308页)

5结束语

本文分析了NTFS文件系统的空间分配,重点分析了

MFT、文件记录及关键属性,对比了文件删除前后文件记录的

异同,在此基础上提出了一种NTFS文件系统下数据恢复的实

现方法。本文提出的数据恢复方法可作为重用模块,为计算

机取证提供良好的技术支持。随着应用开发和研究的深入,

从实用的角度出发,某些功能需要完善,比如Slack数据的获

取和分析。

参考文献:

【1】戴士剑,涂彦晖.数据恢复技术[M】.2版.北京:电子工业出版社,

2005.

【2】尤晋元,史美林.Windows操作系统原理【M】.北京:机械工业出

・-—332・——

版社,2001.

Mark

Russinovich,David

ASolomon.InsideMicrosoftWindows

2000【M】.US:MicrosoftPress。2004.

Richard

Russon,Yuval

Fledel.NTFSdocumentation【DB/OL]。

http://www.1inux・ntfs.org/content/view/104/43/.

梁金千,张跃.NTFS文件系统的主要数据结构【J】.计算机工程

与应用,2003,39(8):113.119.

NikolaiBezroukov.WindowsNTFSfile

systeminternals[EB/

OL】.http://www.softpanorama.org/Intemals/Filesystems/ntfs.

shtml.

Gary

Nebbett.WindowsNT/2000nativeAPIreference[M].US:

Sams,1999.

NTFSResearch

Group.Diskscanfordeletedentries[DB/OL].

http://www.ntfs.corn/disk.scan.htm.

l!l

万方数据

本文发布于:2023-01-04 07:06:18,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/89363.html

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

上一篇:ctsh
标签:hottle
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图