第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.
B
l!l
b
№
口
隋
万方数据
本文发布于:2023-01-04 07:06:18,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/89363.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |