浅谈NTFS文件系统的数据恢复程序设计
- 格式:doc
- 大小:25.50 KB
- 文档页数:3
NTFS被快速格式化成NTFS后数据恢复的研究陈培德;王丽清;吴建平【摘要】快速格式化是高级格式化中的一种特殊形式.逻辑盘被快速格式化后数据能否恢复取决于快速格式化操作对原来文件系统中所存储数据的破坏程度.以Windows 7为平台,WinHex 15.08为分析工具,对NTFS文件系统结构进行分析,将逻辑盘由NTFS文件系统快速格式化成NTFS文件系统,通过快速格式化后与快速格式化前对元文件$MFT变化的对比,提出了恢复快速格式化前NTFS文件系统数据的基本思路、方法与步骤.实验结果表明,将逻辑盘由NTFS文件系统快速格式化成NTFS文件系统后,只要恢复格式化前的元文件$MFT的80H属性值,通过CHKDSK命令,便可以恢复被快速格式化破坏的NTFS文件系统结构,除部分数据被覆盖无法恢复外,其他未覆盖的数据均可全部恢复.【期刊名称】《计算机技术与发展》【年(卷),期】2018(028)008【总页数】5页(P191-195)【关键词】格式化;FAT32文件系统;NTFS文件系统;数据恢复【作者】陈培德;王丽清;吴建平【作者单位】云南大学信息学院,云南昆明 650223;云南省高校数字媒体技术重点实验室,云南昆明 650223;云南大学信息学院,云南昆明 650223;云南省高校数字媒体技术重点实验室,云南昆明 650223;云南大学信息学院,云南昆明 650223;云南省高校数字媒体技术重点实验室,云南昆明 650223【正文语种】中文【中图分类】TP311.120 引言格式化是指对磁盘或磁盘中的分区进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。
格式化通常分为低级格式化和高级格式化[1]。
如果没有特别指明,对硬盘的格式化通常是指高级格式化。
外存储器在生产出来后,一般要经过低级格式化、分区和高级格式操作后,才能用来存储数据[1]。
低级格式化针对的是整个硬盘,一般由外存储器生产厂商来完成;而对外存储器的分区和高级格式化一般由销售商或者用户来完成,高级格式化针对的是某个分区。
基于NTFS文件系统的数据恢复编程技术作者:高洪涛李孟林赵璇元来源:《信息安全与技术》2015年第06期【摘要】文章针对由主观因素造成计算机中数据丢失的情况提出了一种Windows NTFS 文件系统下数据恢复的实现方法,介绍了NTFS 数据恢复编程的原理,设计了数据恢复的编程框架,并结合实际编程完成了数据恢复的实现,最后通过测试验证了程序的功能可用性。
本程序创新性采用自定义结构体的方式扫描MFT表,速度飞快,同时能读出Linux环境下用DD 命令拷贝的文件,所有数据恢复操作均在内存中进行,不会对磁盘写入任何数据。
【关键词】 NTFS;数据恢复;编程1 引言随着信息化社会的快速发展及电脑的广泛应用,使用计算机进行犯罪的案件越来越多,给人们和社会造成了巨大的财产损失。
然而,为了逃脱公安机关的打击,犯罪分子经常将计算机上的犯罪数据信息彻底删除,或将分区甚至整个硬盘进行格式化操作,从而使得重要的犯罪证据丢失,给案件的取证带来极大的困难。
因此,如何迅速准确地在计算机上恢复出犯罪证据,成为切实打击犯罪的一个关键因素。
在NTFS卷中,虽然文件被删除了,但其MFT表项并没有清空。
不过删除文件的同时,MFT被清空的可能性也存在,在极端情况下,如系统分配给MFT的空间已经接近用完时,系统在删除文件的同时也会将MFT清空,并直接用其他文件的MFT覆盖该文件的MFT。
一般情况下,只要MFT表项没有清空,则文件MFT表项中80属性值就不会清空,也就是说文件数据还存在磁盘上,故文件数据就存在恢复的可能。
2 编程需要的原理要想进行数据恢复,就必须知道文件存储的原理,本文首先对NTFS 文件系统、主文件表MFT结构以及文件的几个关键属性(即文件名、标准信息、数据流等)进行分析。
2.1 NTFS文件系统概述NTFS是随着 Windows NT操作系统而产生的,全称为“New Technology File System”,中文意为新技术文件系统,简称“NTFS”。
基于NTFS的数据恢复系统设计与实现封富君;姚俊萍;李晓军【摘要】Windows下的NTFS文件系统具有较好的稳定性和安全性,对NTFS下数据恢复软件的研究对数据的安全保护具有重要作用。
分析了NTFS文件系统的结构,设计并实现了一个基于NTFS的数据恢复系统,详细阐述了系统的三个主要模块的实现过程,包括磁盘分析模块、分区扫描模块和数据恢复模块。
数据恢复模块是恢复系统的核心模块,给出了NFTS数据恢复实现的具体流程。
软件测试结果表明该软件能够很好的恢复原始数据。
【期刊名称】《计算机科学与应用》【年(卷),期】2017(007)012【总页数】9页(P1245-1253)【关键词】NTFS;数据恢复;MFT【作者】封富君;姚俊萍;李晓军【作者单位】[1]西安高新技术研究所,陕西西安;;[1]西安高新技术研究所,陕西西安;;[1]西安高新技术研究所,陕西西安;【正文语种】中文【中图分类】TP311. 引言随着网络技术的不断发展,以及数据量的急剧增加,在大数据环境下,越来越多的用户习惯于把重要资料保存到计算机硬盘中,却不得不面对数据可能丢失的风险。
数据恢复是信息安全的最后一道防线,是保护数据安全的重要方法。
数据恢复技术就是因计算机系统遭到误操作、病毒侵袭、硬件故障、黑客攻击等事件后,将用户数据从各种“无法读取”的存储设备中拯救出来,从而将损失减到最小的技术[1]。
数据恢复根据故障可分为两大类:软恢复和硬恢复。
由于磁盘故障导致的数据恢复称为硬恢复,例如磁道或盘片损坏。
软恢复是指通过软件的方式进行的数据恢复,整个过程并不涉及硬件维修。
产生的原因主要有误操作,如误格式化或误删除;恶意程序的破坏,如病毒感染;操作系统错误,如系统死机导致的数据丢失等。
大多数的数据恢复属于软恢复。
在数据恢复之前应该对数据存储介质进行全面的了解和检查,并根据实际情况制定科学合理的数据恢复方案。
数据恢复涉及的领域较广,具有电子数字数据和数字文档存储的地方都会有数据存储、数据损坏和数据修复的问题,目前对计算机的数据恢复[2] [3][4] [5] [6]和电子取证中的数据恢复[7] [8]研究较多,本文则设计并实现了一个数据恢复系统。
NTFS⽂件系统详细分析第⼀部分什么是NTFS⽂件系统想要了解NTFS,我们⾸先应该认识⼀下FAT。
FAT(File Allocation Table)是“⽂件分配表”的意思。
对我们来说,它的意义在于对硬盘分区的管理。
FAT16、FAT32、NTFS是⽬前最常见的三种⽂件系统。
FAT16:我们以前⽤的DOS、Windows 95都使⽤FAT16⽂件系统,现在常⽤的Windows 98/2000/XP等系统均⽀持FAT16⽂件系统。
它最⼤可以管理⼤到2GB的分区,但每个分区最多只能有65525个簇(簇是磁盘空间的配置单位)。
随着硬盘或分区容量的增⼤,每个簇所占的空间将越来越⼤,从⽽导致硬盘空间的浪费。
FAT32:随着⼤容量硬盘的出现,从Windows 98开始,FAT32开始流⾏。
它是FAT16的增强版本,可以⽀持⼤到2TB(2048GB)的分区。
FAT32使⽤的簇⽐FAT16⼩,从⽽有效地节约了硬盘空间。
NTFS:微软Windows NT内核的系列操作系统⽀持的、⼀个特别为⽹络和磁盘配额、⽂件加密等管理安全特性设计的磁盘格式。
随着以NT为内核的Windows 2000/XP的普及,很多个⼈⽤户开始⽤到了NTFS。
NTFS也是以簇为单位来存储数据⽂件,但NTFS中簇的⼤⼩并不依赖于磁盘或分区的⼤⼩。
簇尺⼨的缩⼩不但降低了磁盘空间的浪费,还减少了产⽣磁盘碎⽚的可能。
NTFS⽀持⽂件加密管理功能,可为⽤户提供更⾼层次的安全保证。
在NTFS⽂件系统中,⽂件存取是按簇进⾏分配,⼀个簇必需是物理扇区的整数倍,⽽且总是2的整数次⽅。
NTFS⽂件系统并不去关⼼什么是扇区,也不会去关⼼扇区到底有多⼤(如是不是512字节),⽽簇⼤⼩在使⽤格式化程序时则会由格式化程序根据卷⼤⼩⾃动的进⾏分配。
⽂件通过主⽂件表(MFT)来确定其在磁盘上的存储位置。
主⽂件表是⼀个对应的数据库,由⼀系列的⽂件记录组成--卷中每⼀个⽂件都有⼀个⽂件记录(对于⼤型⽂件还可能有多个记录与之相对应)。
NTFS文件系统中用WinHex手动恢复文件的研究作者:史春水刘思磊来源:《电脑知识与技术》2020年第09期摘要:通过数据恢复软件扫描出来的文件的文件名很多都已经改变,现在的硬盘已经容量很大,通常用户在硬盘里存的文件也非常多,再通过这种扫描的方法恢复丢失文档必然造成再次寻找文件的麻烦,通过手动恢复某个具体的文件就变得有价值。
关键词:计算机;数据;恢复中图分类号:TP311 文献标识码:A文章编号:1009-3044(2020)09-0036-03现今数据恢复的软件较多,大多数数据恢复软件可以扫描出丢失的文件,不过多数扫描出来的文件的文件名都已经改变如下图1所示,如果硬盘里的文件数目比较少这种文件名改变的情况引起的问题还不大但是现在的硬盘已经容量很大,通常用户在硬盘里存的文件也非常多,再通过这种扫描的方法恢复丢失文档必然造成再次寻找文件的麻烦,通过手动恢复某个具体的文件就变得有价值。
下面我们探讨一下针对个别文件进行恢复的方法。
当用户把硬盘分区格式化为NTFS文件系统就建立了一个NTFS的结构,将整个磁盘分区上的任何一件事物都看作一个文件,而文件的相关事物又看作一个属性。
“Master File Table”(MFT主文件表)就是NTFS文件系统中一个特殊的文件,它详细地记录了各个文件的属性。
每个文件记录在主文件表中占据的磁盘空间一般为两个扇区,大小1KB,因为MFT的重要性在NTFS文件系统的原文件中还有MFT的备份“MFTMirr”,不过MFTMirr只备份了MFT 的前8个扇区。
文件放人回收站不小心清空了,按Shift+Del键永久删除之后又想找回这个文档,格式化,重装系统等通常是导致文件丢失的几种常见方式。
下面我们来分别看看清空回收站、按Shift+Del键永久删除文件丢失后对$MFT文件的分析。
1 清空回收站我们在VHDI硬盘的NTFS分区内放人一个文件名为“大家好”的word文档,我们先用winhex打开这个盘然后找到$MFT元文件,然后我们新建一个txt文本文件在里面输入大家好另存为的时候选择Unicode如图2所示,这样我们就可以知道文件名在$MFT中的30H属性中的编码如图3所示。
NTFS数据恢复实验【实验思考】对于FAT32格式的分区,使用EasyRecovery软件能否实现误删恢复和格式化恢复?列举你所知道的其它数据恢复软件。
【实验原理】一、NTFS文件系统结构在NTFS文件系统中,文件也按簇进行分配,一个簇必须是物理扇区的整数倍,而且总是2的整数次方。
NTFS文件系统的簇大小在使用格式化程序时,由格式化程序根据卷的大小自动进行分配。
在NTFS中,所有存储在卷上的数据都包含在文件中,包括用来定位和获取文件的数据结构、引导程序以及记录卷自身大小和使用情况的位图文件。
这体现了NTFS的原则:磁盘上的任何事物都为文件。
在文件中存储一切使得文件系统很容易定位和维护数据。
文件通过主文件表(MFT,Master File Table)来确定其在磁盘上的存储位置。
主文件表是一个与文件相对应的数据库,由系列的文件记录(File Record)组成——卷中每一个文件都有一个文件记录(对于大型文件还可能有多个记录与之相对应)。
主文件表自身也有它自己的文件记录。
NTFS分区的MFT中的文件记录大小一般是固定的,不管簇的大小是多少均为1KB。
文件记录在MFT文件记录数组中物理上是连续的,且从0开始编号,MFT仅供系统本身组织、架构文件系统使用,这在NTFS中称为元数据(Metadata,是存储在卷上支持文件系统格式管理的数据。
它不能被应用程序访问,只能为系统提供服务)。
其中最基本的前16个记录是操作系统使用的非常重要的元数据文件。
这些元数据文件的名字都以“$”开始,是隐藏文件,在Windows NT/2000/XP中不能使用dir命令像普通文件一样列出。
这些元数据文件是系统驱动程序管理卷所必需的,Windows NT/2000/XP给每个分区赋予一个盘符并不表示该分区包含有Windows NT/2000/XP可以识别的文件系统格式。
如果主文件表损坏,那么该分区在Windows NT/2000/XP下是无法读取的。
出现的情况:电脑开机运行故障,提示ntfs.sys丢失或损坏。
解决的几个办法:使用Windows的“故障恢复控制台”来挽救系统。
那么怎样才能启动故障恢复控制台?方法有两种,一是从安装光盘启动,二是从硬盘启动。
具体步骤如下:第一种:请插入一张Windows 2000或Windows XP的安装光盘,并且在BIOS中设置为优先从CD-ROM启动,启动电脑以后,系统会自动进入Windows 2000/XP安装界面选项,按下“R”键选择第二项“要使用故障控制台修复Windows XP安装,请按R。
”系统自动登录到故障恢复控制台,恢复控制台也就成功启动了。
第二种:在Windows 2000/XP系统中插入Windows XP的安装光盘,然后单击“开始→运行”,从浏览中找到Windows XP安装光盘上i386文件夹,选中其中的winnt32.exe程序,回到运行对话框后,输入参数/cmdcons,Windows XP提示开始安装。
安装好后重新启动计算机,在操作系统选择菜单中会出现“Windows XP Recovery Console”选项,通过它也可以进入系统故障恢复控制台。
在故障恢复控制台下先输入cd \windows\system32\drivers,然后按ENTER键。
接着输入ren ntfs.sys ntfs.old,将损坏的Ntfs.sys文件重命名为 Ntfs.old。
如果提示没有找到 Ntfs.sys 文件,则该文件丢失了。
把Windows XP的安装光盘放进光驱,假设Windows XP安装在C盘、光驱的盘符为H,键入copy h:\i386\ntfs.sys c:\windows\system32\drivers,然后退出故障恢复控制台,重新启动 Windows XP即可。
xp的原始故障恢复控制台的管理员密码就是(xp)。
故障恢复控制台是windows 2000/xp/2003专用于修复系统的工具,它可以启用和禁用服务、格式化驱动器、在本地驱动器上读写数据(包括被格式化为 ntfs 文件系统的驱动器),并执行许多其他管理任务,是我们连windows 2000/xp/2003安全模式都无法进入时修复系统的“法宝”。
数据恢复FAT和NTFS区别来源:加入时间:$AddTime$在这个步步高教程之前的文章内,我们几乎讨论的都是关于存储在FAT或者FAT32文件系统上的数据恢复。
现在我们把注意力放在存放在NTFS卷上的数据。
因为NTFS文件系统与FAT和FAT32文件系统完全不同,数据恢复必须采用不同的方法。
然而,也有例外,这篇教程的最后一部分将讨论无论任何系统格式下都能运行的最终(last ditch)恢复技术,但是现在我们要讨论的是NTFS文件系统从一个数据恢复点是如何工作的。
如果你用Google搜索一下NTFS数据恢复技术,你可能得到最多的链接是关于卖数据恢复产品的网站。
这是因为NTFS被设计可以自己执行恢复数据,而不需要使用第三方数据恢复软件或者操作。
在这个工作中有两个主要技术来实现这个功能:簇重映射(cluster remapping)和事务日志(transaction logging)。
簇重映射簇重映射是通过自动方式把数据从硬盘包含坏的分区的簇上自动移动到良好的簇的技术。
簇重映射的结构不用,取决于包含这个坏的扇区的卷是否是容错的,而且坏的扇区在读写过程中是否被发现。
让我们讨论一下在没有容错的卷上写入的操作,当数据被写入NTFS卷,操作系统在写的操作时把检查扇区做为确认进程的一部分,如果操作系统检测到一个扇区是损坏的。
Windows标记整个簇都是损坏的,这样它在将来就不往这个簇上存储数据。
(这是因为簇不能被再细分)数据将被存储到良好的簇内,这样不会有数据损失。
但是如果这个坏的扇区在读取时候被检测到,情况就不一样了。
操作系统将返回一个读取错误的消息来响应被数据请求。
这里有几种不同的理论关于接下来如何解决这个问题。
一些资料表示,一旦这个读取错误发生,Windows把这个扇区和其中的簇标记为损坏,所以簇其中的数据将完全丢失。
另外一些资料说,如果这个数据的一部分能读出来,Windows在标记这个扇区为损坏之前,把这些数据移到另一个簇。
76收稿日期:2018-05-12*基金项目:兰州石化职业技术学院科研基金:电子信息产品的数据恢复技术研究(基金号:KJ2017-06)作者简介:权建军(1968—),男,甘肃陇西人,硕士,兰州石化职业技术学院副教授,教研室主任,研究方向:电子信息及数据恢复。
NTFS(New Technology File System)是微软在Windows NT 及后续的各个版本的操作系统中广泛采用磁盘文件格式,被用来代替FAT文件系统,成为主流文件系统之一。
NTFS文件系统中文件管理体系比较复杂,理论教学难度较大,针对高职数据恢复教学,探索突出实践简化理论的数据恢复教学方法就显得十分必要。
1 NTFS概述NTFS文件系统的结构如图1所示。
其第一个扇区为引导扇区,即DBR扇区。
在DBR扇区之后,是15个扇区的NTLDR区域,这16个扇区共同构成$BOOT文件。
在NTLDR后(但不一定是物理上相连的)是主文件表(Master File Table,MFT)区域。
主文件表由文件记录构成,每个文件记录占2个扇区。
NTFS文件系统的主文件表记录了一些非常重要的系统数据,称为“元文件”,包括了用于文件定位和恢复的数据结构、引导程序数据及整个卷的分配位图等信息。
2 NTFS文件系统数据定位为了掌握N T F S 文件系统数据定位,将磁盘分区格式化为NTFS,创建2个文件。
分别为“123456.txt”和“MYQ1.JPG”。
通过WinHex软件的Boot Sector NTFS模板,得到磁盘每簇有8个扇区,每扇区有512B,$MFT在786432簇,即6291456扇区。
下面分别进行两个文件的定位。
查找满足扇区起始文本为“FILE0”,并包含有文本“123456.txt”的扇区。
如不满足条件,按“F3”继续查找。
这样就可以查找到文件“123456.txt”所对应的$MFT文件记录,如图2所示。
可以看出,文件“123456.txt”,其内容为“56 44 43 46 45 4854 11”,文本为“VDCFEHT”,为常驻属性。
浅谈NTFS文件系统的数据恢复程序设计
【摘 要】NTFS文件系统的一大特点是所有的数据,包括系统信息,如引
导程序、记录整个卷的分配状态位图等都以文件的形式存在。MFT是NTFS卷
结构的核心,系统通过MFT来确定文件在磁盘上的位置以及文件的所有属性,
MFT是一个与文件相对应的文件属性数据库,它记录了除文件数据信息外的所
有属性(,甚至当文件内容很短时,其内容直接在MFT的数据属性中存放,不
再额外占用簇空间。这一点就有别于FAT系统了,在FAT结构中,即使文件很
小,也必须占用1个簇的空间,这其实是很浪费磁盘空间的。
【关键词】数据;属性;空间
1 引言
在信息社会日益发达的今天,政府、军队、企业以及个人越来越多关注信息
的安全。而信息安全最重要的一环就是数据安全。数据一旦损坏或损失,将为单
位或个人带来非常大的损失和不必要的麻烦。而在工作中,这些事情又是难免的。
所以,数据恢复技术在我们的工作生活中占有了越来越重要的地位。
2 MFT结构分析
每个文件都与MFT表一一对应,而文件删除、修改等操作都在MFT表中
得到了体现,故我们首先必须分析出MFT结构。同样还是采用WinHex软件进
行分析。MFT由两个部分组成,即MFT头(也称文件记录头)和属性列表。
MFT头的长度和偏移的数据含义是固定不变的,而属性列表则是可变的,其不
同的属性数据有着不同的含义,后面将对其进行具体的分析。下面先分析MFT
头结构中主要的偏移位置,即笔者认为在数据恢复程序设计中必须考虑的偏移位
置。 (1)文件记录头前四个字节的值总为0x454C4946H,标识其为MFT记录
表项。 (2)偏移14H处,记录了MFT头的总长度,即MFT中第一个属性流
的开始。故在程序设计中,即可采用条件语句 IF(strcmp(MFTFlag,”FILE”) !
= 0 ||*(LPWORD)(lpBuffer + 0x14) == 0)来判断当前读取的文件是否为MFT
记录表项,若非,则直接忽略此文件(其中,MFTFlag表示MFT头最前面四字
节值;lpBuffer表示MFT 的起始偏移)。 (3)偏移16H处的值为标记字节,
具体含义为:00H表示已删除的文件,01H表示正常的文件,02H表示已删除的
目录,03H则表示正常的目录,故偏移16H处的值可用于判断此MFT表项是否
为非目录文件且是否已删除。 (4)偏移18H处四字节,记录了MFT表项的总
长度,通过获取此值就可判断MFT表项的结束偏移位置,其中MFT的结束偏
移处的标记为FFFFFFFFH,但在NTFS卷的一些MFT中有时会出现不止一个
FFFFFFFFH的情况。 属性列表也被细分成了两个逻辑组成部分,即属性头部和
属性数据,其中属性头部标识了属性的类型、属性数据的相对偏移及其长度。因
MFT大小只有1KB,故可能导致有些属性并不能完全存放在单个的MFT表项中,
NTFS采用了簇运行列表结构(runs list),将不能完全存放下来的属性值采用了
多个簇分开存放,这些簇在物理上可以不连续,故NTFS引入了 LCN、VCN来
定位簇号,此类型的属性在NTFS卷中称为非常驻属性,反之则为常驻属性,其
中10属性、30属性总为常驻属性,而用于反映数据存储位置的80属性则常为
非常驻属性。下面深入地分析与数据恢复相关的属性结构。
3 NTFS下重要的属性结构
1)10属性分析 10类型属性即$STANDARD_INFORMATION属性,为文件
的标准信息。包括一些基本的文件属性,如只读、系统、存档、隐藏及MAC属
性。其中,相对属性头的偏移14H~15H两字节值为10属性值的开始偏移,偏
移04H~08H四字节值为10属性的总长度。 获取与文件相关的MAC时间。
MAC日期与时间相对属性值的偏移分别为00H、08H、18H处,且均占8个字
节。MFT表项中的MAC采用64位即8个字节来表现,存储格式为Coordinated
Universal Time(UTC),其精确度为100ns,且是从1601年1月1日00:00:00
开始为起点。程序设计中,采用结构体 FILETIME即可存放 64bit的MAC时间,
然后再调用Microsoft提供的上层API函数FileTimeToSystemTime,将UTC时间
转换为本地时间即可重现文件的MAC日期及时间。
2)30属性分析 30类型属性即$FILE_NAME属性,用于存储文件名,总为
常驻属性,其相对属性头的偏移代表的含义和10属性一样,不再赘述。属性值
中包括父目录的MFT参考号、文件名,获取父目录的MFT参考号。MFT参考
号即MFT的相对$MFT表的序号,即给定一个MFT参考号N,即可求出此文件
MFT表项在MFT区域的物理位置,N对应的MFT表项的物理扇区数
=N*2+BPB_MFTStartClus*8。其中,BPB_MFTStartClus值表示NTFS指定分区
的MFT起始簇,可以从BPB结构体中获得。上式表明,已知父目录的MFT参
考号即可映射到其父目录的MFT表项位置,从而可以获取父目录MFT表项的
相关属性信息,故在程序设计中可以依次的向上搜索出整个目录树。 30属性值
偏移00H处开始,共8个字节,即为父目录的MFT参考号。在程序设计中,其
实只需要读取前4个字节内容,不需要考虑后四个字节。 获取文件或目录名。
NTFS卷中文件名采用Unicode编码,每个字符占两个字节。在30属性中,文件
名的首个字符从属性值偏移42H开始,字符总数记录在偏移40H处,故借助这
两处的偏移值,即可准确的读取文件或目录名。但有些MFT表项中会出现两个
30属性,前者用于兼容8.3格式文件,假设文件名为 recovery.txt的文件,在首
个30属性中,其文件名则为RECOVE~1.txt,共12字节;后者用于记录文件或
目录的长文件名,
3)80属性分析 80 属性即$DATA属性,用于存放文件真实数据或文件数据
存放的物理偏移位置。80属性可为常驻属性也可以是非常驻属性,取决于文件
数据大小。当文件数据很小,能直接在MFT中存放时,则为常驻属性;反之,
则为非常驻属性。常驻80属性,属性头偏移10H~13H处的值为文件数据所占
字节数,偏移 14H~17H处的值为文件数据存储的起始位置,故读取这两个偏
移处的值即可以直接获取文件的真实内容。非常驻80属性。当文件很大时,则
会在属性值位置记录文件数据的簇运行列表(Data Runs list),这个列表直接反
映了文件数据是否离散存储、占用的簇数及其簇的物理偏移位置。非常驻属性头
偏移20H处的值记录了数据运行(Data Runs)的偏移地址;偏移04H处则记录
了属性的总长度。故将偏移04H处的值减去偏移20H处的值即可得到数据运行
列表所占字节数。
4 结论
数据恢复在日常生活当中占据了越来越多的重要角色。当下NTFS格式已经
占据了所有文件类型的绝大部分。数据恢复技术实现是一个难点,但只要深入了
解其内部结构原理,就会将其简化,给我们日常工作学习带来很多便利。
参考文献:
[1]戴士剑,陈永红. 数据恢复技术.北京: 电子工业出版社, 2010.
[2]刘伟. 数据恢复技术深度揭秘.北京: 电子工业出版社, 2010.
[3]高志鹏、张志伟、孙云峰. 识数寻踪:WinHex应用与数据恢复开发秘籍.
北京: 人民邮电出版社, 2013.