论文NTFS数据恢复透明解析完整.docx

上传人:b****7 文档编号:23447054 上传时间:2023-05-17 格式:DOCX 页数:22 大小:2.89MB
下载 相关 举报
论文NTFS数据恢复透明解析完整.docx_第1页
第1页 / 共22页
论文NTFS数据恢复透明解析完整.docx_第2页
第2页 / 共22页
论文NTFS数据恢复透明解析完整.docx_第3页
第3页 / 共22页
论文NTFS数据恢复透明解析完整.docx_第4页
第4页 / 共22页
论文NTFS数据恢复透明解析完整.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

论文NTFS数据恢复透明解析完整.docx

《论文NTFS数据恢复透明解析完整.docx》由会员分享,可在线阅读,更多相关《论文NTFS数据恢复透明解析完整.docx(22页珍藏版)》请在冰豆网上搜索。

论文NTFS数据恢复透明解析完整.docx

论文NTFS数据恢复透明解析完整

 

基于NTFS下数据恢复技术研究

摘要:

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

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

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

关键词:

DBR;NTFS;数据恢复;MFT;数据结构

第一章前言

随着社会发展和进步,大家每个人的数据资源都在日复一日的膨胀着,而硬盘作为数据存储中心,其高精密的结构和高度的使用频率,在复杂的应用环境中,故障发生率也在与日俱增。

几乎每个计算机使用者都会遇到一些数据损坏或丢失的事情,而随着各种应用软件、操作系统、病毒木马等各种因素的增加,数据丢失和损坏的程度也在逐渐变的严重。

一旦重要的数据丢失,其所带来的直接和间接的损失都是很惊人的,而通常大家在费尽心思到处找解决方法的同时,也进一步彻底摧毁了这些数据恢复的可能性。

NTFS是随着WindowsNT操作系统而产生的,全称为“NTFileSystem”,中文意为NT文件系统,如今已是windows类操作系统中的主力分区格式了。

它的优点是安全性和稳定性极其出色,在使用中不易产生文件碎片,NTFS分区对用户权限作出了非常严格的限制,每个用户都只能按着系统赋予的权限进行操作,任何试图越权的操作都将被系统禁止,同时它还提供了容错结构日志,可以将用户的操作全部记录下来,从而保护了系统的安全。

本文主要论述的就是NTFS在系统崩溃或磁盘出现故障后如何安全的恢复文件系统。

NTFS是一个具备错误预警的文件系统。

由于NTFS对关键文件系统的系统信息采用了冗余存储,故而当磁盘上的某个扇区损坏时,NTFS仍可以访问卷上的关键数据。

NTFS分区的最开始的16个扇区是分区引导扇区,用以保存分区引导代码,接下来是主文件表(MFT),如果MFT所在的磁盘扇区出现损坏,NTFS文件系统会将MFT转移到到硬盘的其他扇区,这样就保证了NTFS文件系统和Windows操作系统的正常运行。

比之先前的FAT16和FAT32文件系统的FAT(文件分配表),FAT只能固定在分区引导扇区的后面,一旦该扇区,整个文件系统就会瘫痪,NTFS文件系统显然要先进的多了。

不过这种移动MFT的做法却也并非十全十美,如果分区引导代码中指向MFT的部分出现错误,那么NTFS文件系统便会不知道到哪里寻找MFT,从而会报告“磁盘没有格式化”这样的错误信息。

为了避免这样的问题发生,分区引导代码中会包含一段校验程序,专门负责侦错。

第二章NTFS概述

NTFS是Mircrosoft推出的一种新型文件系统。

Mircrosoft推出NTFS文件系统的主要目的是将其作为WindowsNT/2000/XP和服务器版本的默认文件系统。

NTFS的目标是获得可靠性.高效性和安全性。

2.1NTFS的特点

Ø它提供了容错结构日志,可以有效地保护系统的安全。

NTFS是一个可恢复的文件系统。

在NTFS分区上用户很少需要运行磁盘修复程序。

NTFS通过使用标准的事务处理日志和恢复技术来保证分区的一致性。

Ø它的可升级性基于使用常规结构对特殊数据结构进行管理。

在NTFS文件系统将所有的数据都视为文件,通常在其他文件系统中被隐藏的管理数据在NTFS中也被存储在文件中,文件系统管理数据可以像普通文件一样被存放在文件系统内任何位置。

ØNTFS支持对分区.文件夹和文件的压缩。

Ø在NTFS分区上,可以为共享资源.文件夹以及文件设置访问许可权限,许可的设置包括两方面的内容:

一是哪些组或用户对文件夹.文件和共享资源进行访问。

二是获取访问许可的组或用户可以进行什么级别的访问。

Ø在Windows2000的NTFS文件系统下可以进行磁盘配额管理。

磁盘配额就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额限制内的磁盘空间。

ØNTFS被作为Windows操作系统的标准文件系统,同时也被大多数免费发行的Unix版本的支持。

ØNTFS支持对大容量磁盘存储,可以支持的卷大小可以达到2TB。

ØNTFS于FAT文件系统一样,也使用“簇”作为数据寸取的最小单位。

但因为它将所有的数据,包括文件系统管理数据也作为文件进行管理,所以NTFS文件系统中的所有扇区都被分配以簇号,并以0开始对所有的簇进行编号,文件系统的0号扇区为0号簇的起始位置。

2.2NTFS的基本概念

MTF

MTF,即主文件分配表的简称,它是NTFS文件系统的核心。

MFT由一个或几个MFT项(文件记录)组成,每个MFT项占用1024字节的空间。

每个MFT项的前部几十个字节有着固定的头结构,用来描述本MFT项的相关信息。

后面的字节用于存放“属性”。

每个文件和目录的信息都包含在MFT中,每个文件和目录在表中至少有有一个MFT项。

初引导扇区外,访问其他任何一个前都要先访问MFT,在MFT中找到该文件的MFT项,根据MFT项中的记录的信息找到内容并对其进行访问。

属性

在NTFS中,所有与数据相关的信息都称为“属性”,NTFS与其他文件系统最大的不同之处在于,大多数文件系统是对文件的内容进行读写,而NTFS则是对包含文件内容的属性进行读写。

在数据结构中,属性又可以分为长驻属性和非常驻属性

✧长驻属性。

有的属性其属性内容很小,它的MFT项可以容纳下它的全部内容,为了节约空间,系统会直接将其存放在MFT项中,而不再为其另外分配簇空间,这样的属性称为长驻属性

✧非常驻属性。

非常驻属性是指那些内容较大,无法完全存放在其MFT项中的属性。

如文件的数据属性,通常内容很大,需要在MFT之外另为其分配足够的簇空间进行存储,这样的属性就是非长驻属性。

2.3NTFS元文件

NTFS文件系统被创建时,会同时建立一些重要的系统信息。

这些系统信息也全是以文件的形式存在,被称为元文件。

元文件的文件名都以“$”符号开头,表示其为隐藏的系统文件,用户不可直接访问。

NTFS下的元文件总共有17个,其具体含义如下:

Ø$MFT:

它其实是整个主文件表,也就是将整个MFT看做一个文件。

Ø$MFTMirr:

MFT前几个MFT项的备份,NTFS也将其作为一个文件看待。

Ø$LogFile:

日志文件。

Ø$Volume:

卷文件,包含卷标和其他版本信息。

Ø$AttDef:

属性定义列表,定义每种属性的名字和类型。

Ø$Root:

根目录文件。

Ø$Bitmap:

位图文件,它的数据属性的每个bit对应文件系统中的一个簇,用以描述簇的分配情况。

Ø$Boot:

引导文件,DBR扇区就是引导文件的第一个扇区。

Ø$BadClus:

坏簇记录文件。

Ø$Quota:

早期的NT系统中记录磁盘配额信息。

Ø$Secure:

安全文件。

Ø$UpCase:

大小写字符转换表文件。

Ø$Extendmetadatadirectory:

扩展元数据目录。

Ø$Extend\$Reparse:

重解析点文件。

Ø$Extend\$UsnJrnl:

变更日志文件。

Ø$Extend\$Quota:

配额管理文件。

Ø$Extend\$ObjId:

对象ID文件。

第三章NTFS文件系统的布局

一个NTFS文件系统大致上可以分为引导区、MFT、MFT备份区、数据区和DBR备份扇区几个部分。

因为NTFS将所有的数据都视为文件,理论上除引导扇区必须位于第一个扇区外,NTFS卷可以在任意位置存放任意文件,但通常情况下会遵循一定的习惯布局。

在XP系统下NTFS卷大致布局如下图:

DBR引导区

用户数据

MFT区

用户数据

MFT部分记录备份

用户数据

DBR备份

通常为16个扇区占用一个扇区

NTFS的特点

1)引导扇区。

引导区部分包括DBR和引导代码,一般系统为其分配16个扇区,未完全使用。

2)MFT区。

文件系统中出现一个“MFT”区,这个“MFT区”是一个连续的簇空间,除非其他空间已全部被分配使用,否则不会在此空间中存储用户文件或目录。

在WINXP下创建的NTFS,其MFT通常距离引导扇区较远,但在WIN2000下创建的NTFS,其MFT通常起始于4号簇位置。

3)MFT备份区。

由于MFT备份的重要性,在文件系统的中部为其保存了一个备份,不过这个备份很小,只是MFT前几个项的备份。

4)引导扇区备份扇区。

在卷的最后一个扇区,保存了一份DBR扇区的备份。

这个扇区包含在分区表描述的该分区大小中,但却不在DBR描述的文件系统大小范围之内。

DBR描述文件系统大小时,总是比分区表描述的扇区数小1个扇区。

第四章DBR(引导扇区)

NTFS的引导扇区也位于文件系统的0号扇区,这是它与FAT文件系统在布局上的唯一相同之处。

数据结构如下图,此图为本硬盘DBR:

4.1DBR的作用

DBR(DOSBOOTRECORD,DOS引导记录),位于柱面0,磁头1,扇区1,即逻辑扇区0。

DBR分为两部分:

DOS引导程序和BPB(BIOS参数块)。

其中DOS引导程序完成DOS系统文件(IO.SYS,MSDOS.SYS)的定位与装载,而BPB用来描述本DOS分区的磁盘信息,BPB位于DBR偏移0BH处,共13字节。

它包含逻辑格式化时使用的参数,可供DOS计算磁盘上的文件分配表,目录区和数据区的起始地址,BPB之后三个字提供物理格式化(低格)时采用的一些参数。

引导程序或设备驱动程序根据这些信息将磁盘逻辑地址(DOS扇区号)转换成物理地址(绝对扇区号)。

4.2DBR的数据结构

字节偏移(十六进制)

字节数

含义

00-02

3

跳转指令

03-0A

8

OEM名(“明文NTFS”)

0B-0C

2

每扇区字节数

0D

1

每簇扇区数

0E-0F

2

保留扇区数

15

1

介质描述符

18-19

2

每磁道扇区数(不检查此项)

1A-1B

2

每柱面磁头数(不检查此项)

1C-1F

4

隐含扇区数(不检查此项)

24-27

4

总是80008000(不检查此项)

28-2F

8

文件系统扇区总和

30-37

8

MFT起始簇号

38-3F

8

MFT备份的起始簇号

40

1

每MFT项大小

41-43

3

未使用

44

1

每个索引的簇数

45-47

3

未使用

48-4F

8

序列号

50-53

4

校验和

54-1FD

426

引导代码

1FE-1FF

2

签名55AA标记

以上引导扇区最为关键的字节数是0B-0C(每扇区字节数)0B-0C(每扇区字节数)0D(每簇扇区数)28-2F(文件系统扇区总和)30-37(MFT起始簇号)38-3F(MFT备份的起始簇号)40(每MFT项大小)44(每个索引的簇数),但数据发生不可预料的损坏时,可以根据以上信息重建分区表,定位数据区,恢复MFT,重建DBR,这些关键字节码的用处不言而喻。

第五章主文件表MFT

格式化成NTFS文件系统时,就是在其中建立了一个主文件表MFT,其中包含16个元文件的文件记录。

为了尽可能减少$MFT文件产生碎片的可能性,系统预先为其预先为其预留整个文件系统大约12.5%的空间。

只有在用户数据区的空间用尽时,才会临时让出MFT区的部分空间存储数据,但一旦数据区有了足够的空间,就会立即收回原来让出的MFT空间。

主文件表MFT由一个个的MFT项组成,每个MFT项实际就是一个文件记录,其中用各种属性记录着该文件或目录的各种信息。

每个MFT项实际的大小在引导扇区中进行说明,Microsoft的所有版本都使用1024字节的大小。

前部为一个包含几十个字节的具有固定的大小和结构的MFT头,剩余的字节为属性列表,用于存放各种属性。

5.1MFT的基本特点:

ØMFT的第一个区域是签名,所有的MFT项都有相同的签名(FILE)。

如果在项中发现错误,可能将其改写成“BAAD”的字样。

ØMFT项还有一个标志域用以说明该项是一个文件项还是目录项,以及它的分配状态。

MFT的分配状态也在一个$BITMAP属性文件中进行描述。

Ø每个MFT项占用两个扇区,每个扇区的结束两个字节都有一个修正值,这个修正值与MFT项的更新序列号相同,如果发现不同,会认为该MFT项存在错误。

Ø如果一个文件的属性较多,使用一个MFT项无法容纳下全部的属性,可以使用多个MFT项,第一个项被称为基本文件记录或基本MFT项。

5.2MFT的数据结构:

字节偏移(十六进制)

字节数

含义

00-03

4

签名值“46494C45”(明文“FILE”)

04-05

2

更新序列号偏移

06-07

2

更新序列号的数组个数

08-0F

8

日志序列号(LSN)

10-11

2

序列号

12-13

2

硬链接数

14-15

2

第一个属性的偏移地址

16-17

2

标志,00已删除的文件;01文件;02已删除目录;03目录。

18-1B

4

MFT项逻辑长度

1C-1F

4

MFT的物理长度

20-27

8

基本文件记录索引号

28-29

2

下一属性ID

2A-2B

2

边界

2C-2F

4

MFT记录编号(起始编号0)

30-37

8

更新序列号数组

38-3FF

968

属性和修正值

重要字节码解释如下:

1)00-03:

MFT项签名值“46494C45”,明文为“FILE”。

2)04-05:

更新序列号编号的偏移。

3)06-07:

更新序列号的数组个数,通常为3。

4)08-0F:

日志序列号。

 

第七章NTFS数据恢复技术的实现

7.1NTFS格式化恢复

数据丢失的具体故障为:

盘分了三个区在一次意外死机后磁盘提示(前两个区是正常的)提示未格式化(其实大多数朋友知道这时的问题简单得多也许重建DBR后整个盘里面的数据都在,这里暂且就不谈这种问题的解决方法了),要命的是这时已经鬼使神差地点击了格式化了,结果大家当然就知道了,数据肯定是没有了。

据转到我这里的那同行说他用各种搜索软件对整个区搜了好几遍(这也是大多数所谓专业的数据恢复商所用的恢复方法了),当然也搜到了很多数据,尽管很乱但还能正常打开。

最后客户确认搜出来数据大部份正常,但最重要的的一个压缩文件损坏了,大家知道压缩文件损坏了是很难很难修复的了。

首先我用WINHEX把他搜出来的那个压缩文件打开分析了下,文件头乱了,中间的数据也不正常。

无法修复,只好从原盘着手了。

竟然搜索软件搜出来的是损坏的,那就只有用手工来做了,当然用手工做这种格式化了的数据很费时,且计算量也很大,只能针对像这样的个别特重要的数据。

对原盘的那个格式化掉的分区做完镜像后,用WINHEX打开镜像,设置镜像文件为磁盘。

如下图所示:

分区是NTFS格式的,整个分区大小为25.4G。

对NTFS分区格式研究过的朋友会知道,在NTFS文件系统中,文件亦是按簇进行分配的,文件通过主文件表MFT(MasterFileTable)来确定其在磁盘上的存储位置、大小、属性等信息。

相当于FAT系统下的FAT+FDT的功能。

每文件都有一个文件记录。

其中第一个记录就是MFT自己本身。

我们转到第一个文件记录也就是MFT了直接点可以看到如下图所示:

通过第一个文件记录往下观察发现格式化了后对文件记录没有产生破坏。

那么这时我们就可以有一个恢复的思路了:

找到所说的那个压缩文件的在MFT中的记录,再通过对文件记录的分析来确定文件在磁盘中的位置及大小,就可以直接从中提出文件了。

想到做到,只知道一个压缩文件的压缩文件名为:

源文件与素材。

那好,我们可以新建一个文本记事本只输入压缩文件名―――源文件与素材!

保存,再用WINHEX打开可以看到如下图:

然后再转回来,直接从第一个文件记录往下开始搜索十六进制数值906E8765F64E0E4E207D5067搜索到了一个地方停下来了,看看是不是那个压缩文件的记录呢看下图:

根据观察可以看出正是客户要的那个压缩文件的记录,那么我们又如何来确定这个压缩文件在磁盘上的那一个扇区?

占用了多少的扇区呢?

这个就需要对NTFS格式有所了解了。

NTFS将文件作为属性、属性值集合来处理,这一点其他文件系统不一样。

可以看到在MFT中用了不同颜色的段来区分,

如上图所标记的,第一个为文件记录头,第二个10H表示标准属性,第三个30H表示文件名属性,最后一个80H表示数据流属性也就是关键所在了。

这里我们只分析数据流属性,其它属性就不一一分析了,可以查看相关资料。

每一个属性都为两部份:

属性头和内容。

先来分析数据流属性的属性头:

从第1第4四个字节表示属性的类型,第5第8四个字节这里的值是48000000表示属性的长度(包括属性头和内容)为72个字节。

从17到24共8个字节表示起始的VCN即虚拟簇号,第25到32共8个字节表示结束的VCN此处为2D7FH也就是这个压缩文件占用了11648个簇。

再往下分析从33到40共8个字节表示数据运行的偏移。

此处为40H也就是从第64个字节开始了。

我们就直接来分析数据运行也只有这一个运行32802DD55817所以起始的LCN即逻辑簇号为1758D5H=1530069,长度为2D80H=11648。

接下来我们转到1530069簇看,第一个字节右键选块开始,上面算出来这个文件的,如下图:

大小为11648个簇,也就是1530069+11648=1541717再转到1541717簇,所在的扇区的上一扇区也就是文件的结尾了。

最后一个字节右键选块结尾。

再在所选块中右键编辑-复制扇区-到新文件即指点到路径保存。

然后改扩展名为RAR。

至此恢复完成。

经检查没有一个损坏的。

7.2手工定位NTFS文件系统下的文件

相信很多朋友在认真看完数据恢复书籍中,关于NTFS文件系统中讲述的一系列属性以后,或多或少还是有些范迷糊。

确实,NTFS文件系统结构比较复杂,且书中也没有讲到如何利用这些属性来定位文件,这对于初学者来说,无疑是一个缺憾.为弥补这一缺憾,我根据我个人对NTFS文件系统的理解,制作了本分析过程。

申明,这只是本人的理解,难免会有错误的地方。

仅供大家参考。

现在我就以我电脑里的一个叫“MFT结构分析”的图片文件,其存储路径为E:

\教程\数据恢复。

接下来我们一层一层的去定位文件.以对所学的属性做一个融会贯通.或许有的朋友会说:

在实际操作中,可以通过在MFT中搜索文件名的方式来做出定位,这样也是可以的。

我制作本分析过程的初衷也就是给初学者对NTFS的理解提供一个思路。

学过FAT文件系统的,一定知道如何定位分区以及DBR,那好,我们就直接从DBR开始

从DBR中得出,每簇扇区数为08H,($MFT一下简称MFT).MFT的起始簇为:

00000C00H,转换为十六进制分别为8扇区和786432簇。

现在跳转到786432簇,如下图:

我们可以看到,这是MFT的第一个记录,记录的是它自己。

,接下来我们跳转到MFT的关于根目录的记录,也就是第5号记录。

根目录一般存储的文件以及文件夹比较多。

所以,它是非常驻的,关于这些文件夹的信息记录在了其它的位置。

而记录在什么位置是由索引分配属性来记录的,也就是A0属性,接下来着重看一下A0属性,如图:

上图红色的标注的位置是运行(Datarun)31H表示用三个字节描述的是索引的位置的起始LCN(3E9002H),一个字节描述的是长度(02H)。

下一个运行的位置描述的是00H表示到此结束,只有一个运行。

(提示:

如果下一个运行由内容,那么它描述的LCN加上前一个运行描述的LCN才是其真正的LCN,如果由三个运行,用第三个运行的LCN加上前两个的LCN就是第三个运行的真正的LCN,以此类推!

我们将其转换为10进制数值得到这样一个信息,索引项的起始位置为167998簇,乘以每簇扇区数8,等于1343984扇区,长度为2个簇,跳转到1343984扇区,如图:

这个位置是根目录的索引项,可以看到里面索引的文件名为元数据。

“教程”这个文件夹也存放在根目录里面,我们搜索该文件名,以找到相对应的索引项,由于NTFS里面文件名是用Unincode字符来表示的,所以该文件名转换为16进制数值为59650B7A8765H,我们在根目录索引项里搜索此文件名:

在1343994扇区找到了“教程”的索引项,(1343994-1343984=10,每簇扇区数为8,说明次索引项存放在第二簇里面)从上图可以看出,其文件记录存放在第6B3500H号扇区,转换为十六进制为13675号记录,一个MFT占用2个扇区,其文件记录的开始为,从MFT第一号记录向下数27350个扇区,就其文件记录存放的位置,计算方式为:

6291456+(13675*2)=6318806,跳转到6318806扇区,如图:

图中描述的本MFT号正是我们要找的,看下面的运行31011BEB01H,转换为16进制数值为:

125723,再乘以每簇扇区数8等于1005784扇区,现在跳转到1005784扇区搜索“数据恢复”这个文件夹的十六进制数值70656E6362600D59H,结果没找到,难道是此文件夹没有记录?

不可能。

猜想,会不会是被驻留了。

存放在MFT里面,跳回6318806扇区,搜索70656E6362600D59,在该MFT的第二个扇区里面找到了该文件夹的记录。

跳转到文件的“数据恢复”文件MFT记录号:

23A100000000H,十进制为41251号,乘以2加上6291456,等于6373958。

如图:

对NTFS多少有点了解的人都会发现,这并不是MFT。

为什么?

看一下我的MFT的分布情况,如图:

我的MFT是分三大块来存放的,(我自己的命名)接下来计算一下:

第一块:

MFT从786432簇开始,到796687结束用了10255个簇=82040扇区,每2个扇区为一个完整的MFT。

第二块:

MFT从397607开始到结束397686,用了79个簇632

第三块:

……

第一块MFT只用了10255个簇来记录,(我用簇为来但来计算)而我们要找的文件“数据恢复”存放在41251号,(41251*2/8=10312.75簇)已经超出了第一块的记录范围,超出75.75个簇,经计算,在第二块里面才是存放的“数据恢复”的MFT。

第二块的开始位置为397607簇,加上75簇,等于397664簇,由于硬盘是从0开始记录数据的,所以,这个地方应该还要减去1。

跳转到397663簇的四分之三(0.75)位置,也就是第6个扇区

根据运行,得知其起始LCN为A08AH(35488*8=283904),占用一个簇。

跳转到283904扇区:

搜索文件名“MFT”结构分析4D0046005400D37E7E00H

其文件MFT号为26A1H(41254号记录),根据前面的MFT记录块的计算,在“数据恢复”MFT记录向下数三个记录,就是“MFT结构分析”这个文件的MFT记录了。

跳转到该位置

其运行为3281000F8F00H,起始LCN为0F8F00(36623*8=292984扇区),长度为8100H(129*8=1032扇区),那么结束位置为292984+1032=294016扇区

跳转到文件的开始292984

跳转到294016,选取上一个扇区的结尾

编辑-复制-植入新文件-保存文件名为“MFT结构分析.jpg”。

双击,能够正常打开。

结束语

随着技术的进步以及企业需求的变化,企业对信息安全的需求也更加凸显,对

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1