收藏 分享(赏)

NTFS文件系统解析.ppt

上传人:精品资料 文档编号:10784286 上传时间:2020-01-09 格式:PPT 页数:53 大小:2.43MB
下载 相关 举报
NTFS文件系统解析.ppt_第1页
第1页 / 共53页
NTFS文件系统解析.ppt_第2页
第2页 / 共53页
NTFS文件系统解析.ppt_第3页
第3页 / 共53页
NTFS文件系统解析.ppt_第4页
第4页 / 共53页
NTFS文件系统解析.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、NTFS文件系统解析,1、基本概念 元文件:NTFS包括几个系统文件,从NTFS卷来看,它们都是隐藏的。文件系统用系统文件来存放元数据并实现文件系统。系统文件是用Format程序放在卷上的。 MFT 属性:NTFS中所有与数据相关信息都称之为“属性”,甚至文件内容也被称为“数据属性”。 NTFS与其他文件系统最大不同在于,大多数文件系统是对文件内容进行读写,而NTFS则是对包含文件内容的属性进行读写,$MFT 主文件表(在DBR里3037表示。数值不是扇区号,而是簇号。在看簇大小0D偏移,就是说:簇号X8=扇区数) $MFTMirr MFT的镜像 $LOGFILE 日志文件,这个是删不掉的。(

2、元文件不能被删除,因为系统下不可访问) $volume 见文件,记录号,创建时间 $attrdef 属性定义列表 $bitmap 位图文件 $root 根目录文件 $badclus 坏簇的列表,在格式化的时候,NTFS发现坏的簇会做标记。防止系统访问他,或者读取它。 $boot 引导文件 $quota 磁盘配额信息 $secure 安全文件 $upcase 大小写字母的转换 $extend metadata directry 扩展元文件目录 $ extend$reparse 解析文件 $ extend$usnjrnl 加密日志文件 $ extend$quota 配额管理文件 $ extend$

3、objid 对象ID文件,NTFS的DBR NTFS的引导扇区也位于文件系统的0号扇区,这是它与FAT文件系统在布局 上的唯一相同之处。数据结构如下图,当格式化一个NTFS卷时,格式化程序分配开始的16个扇区给引导扇区和自举代码。,在NTFS卷上,BPB后面的数据字段构成扩展BPB。启动过程中,这些字段中的数据可以使NTLDR(NT loader程序)找到主文件表(MFT)。在NTFS卷上,MFT不会放在特定的预定义扇区上(和FAT16或FAT32不一样),因此,如果MFT通常的位置有坏扇区,它可以移动。但是,如果数据遭到破坏,MFT无法定位,则Windows NT/2000就认为该卷未格式化

4、。,以上引导扇区最为关键的字节数是0B-0C(每扇区字节数) 0B-0C(每扇区字节数) 0D(每簇扇区数)28-2F(文件系统扇区总和) 30-37(MFT起始簇号)38-3F(MFT备份的起始簇号) 40(每MFT项大小)44(每个索引的簇数),但数据发生不可预料的损坏时,可以根据以上信息重建分区表,定位数据区,恢复MFT,重建DBR,这些关键字节码的用处不言而喻。,$MFT 主文件表(在DBR里3037表示。数值不是扇区号,而是簇号。在看簇大小0D偏移,就是说:簇号X8=扇区数)跳转到上边的扇区数,就是文件记录。开头一定是File开头(46 49 4C 45) 这就是$MFT的开始位置

5、。,30属性是6行半(就是文件名属性$MFT)因为$MFT也是以文件形式存储的,那么$MFT的第一个文件记录就是他的本身。实际上$MFT是个数据库。,向后边翻上两个扇区,就到了$MFTMirr MFT的镜像 $MFT我们在DBR里也能看到他在什么地方。3037H的数值上体现) $MFTMirr我们在DBR里的383F 的数值上能体现出来。 镜像应该跟$MFT是一样的,但是他跟FAT32不一样,所以备份也不一定是完全一样的。镜像只是前4个元文件的文件记录的备份。 1、 $MFT 2、 $MFTMirr 3、日志文件 4、卷标 四个元文件之后,就没有备份了。所以向下搜索是搜索不到的,只有4个,浏览

6、文件,点击WINHEX浏览文件$mft和$mftmirr在系统下是看不到的,只能在这里看到。 $mft本身是一个文件大小会有变化,这里有32K $mftmirr只有4K,占用8个扇区。,MFT属性,属性的结构: 每个MFT项大小为1024字节,分为两部分,MFT头和属性列表。 属性有许多类型,每种属性都有自己的内部结构:属性头和属性内容。由于属性有常驻属性和非常驻属性之分,所以属性头也有差别,但不管是常驻还是非常驻,它们属性头的前16个字节是相同的结构。(如下图),在这个MFT项中,0x000x37是MFT的头部。后面为属性列表。共有4个属性,前三个是常驻属性,最后一个为非常驻属性。深色部分则

7、是每个属性的属性头。 图中可看出,前三个属性(常驻)属性头一样大小,最后一个要大一些。,NTFS将文件作为属性/属性值的集合来处理,这一点与其他文件系统不一样。文件数据就是未命名属性的值,其他文件属性包括文件名、文件拥有者、文件时间标记等。下图显示了一个用于小文件的MFT记录,属性头,属性头主要用于说明该属性的类型、大小及名字,同时包含压缩、加密等标志。 常驻属性的属性头,非常驻属性头结构,常驻属性等很小的属性与其属性头一起存放在MFT中,内容跟在属性头后面。 非常驻属性则另外存储在MFT以外的簇空间中,并在MFT中的属性描述项中记录它的簇地址。,大文件或大目录的所有属性,就不可能都常驻在MF

8、T中。如果一个属性(如文件数据属性)太大而不能存放在只有1KB的MFT文件记录中,那么NTFS将从MFT之外分配区域。这些区域通常称为一个运行(run)或一个盘区(extent),它们可用来存储属性值,如文件数据。如果以后属性值又增加,那么NTFS将会再分配一个运行,以便用来存储额外的数据。值存储在运行中而不是在MFT文件记录中的属性称为非常驻属性(nonresident attribute)。NTFS决定了一个属性是常驻还是非常驻的;而属性值的位置对访问它的进程而言是透明的。,当一个属性为非常驻时,如大文件的数据,它的头部包含了NTFS需要在磁盘上定位该属性值的有关信息。下图显示了一个存储在

9、两个运行中的非常驻属性,非常驻属性被存储在簇流中。簇流是一组连续的扇区。簇流用它的起始簇号和流长度加以说明。如,一个属性分为3部分,第一部分存储在簇号为30,31,32,33,34的簇中,则该簇流起始簇号为30,流长度为5。第二部分存储在66,67号中,则第二个簇流起始于簇66,长度为2。第三部分存储在3942号簇中,则第三个簇流起始于39号簇,流长度为4。如图:,NTFS中对文件或文件的某一部分进行位置描述时用两种地址:LCN(逻辑簇号)和VCN(虚拟簇号)。通过VCN到LCN的映射来描述非常驻属性流。 LCN是文件系统的逻辑簇号,VCN则是一个文件内容的内部编号。因此,属性流中VCN的04

10、号簇对应于LCN的3034号簇,VCN的5,6号簇对应于LCN的66,67号簇,VCN的710号簇对应于LCN的3942号簇。 因此LCN与VCN的对应关系及簇流列表中真正的记录如图:,常规属性值及其含义,标准信息属性0x10,标准属性($STANDARD_INFOMATION)的类型值为0x10,它总是常驻属性。它包含一个文件或目录的基本元数据,如时间、所有权和安全信息等。所有文件和目录必须有这个属性。,标准属性实例,0x000x1F字节处32个字节分为4个8字节部分,分别为文件的建立时间、最后修改时间、MFT改变时间和最后访问时间。 0x200x23处4个字节为标志,这个文件的标志为0x2

11、2,则为“存档、隐藏”,文件名属性,文件名属性($FILE_NAME)的类型值为0x30。任何文件和目录在它的MFT项中至少有一个文件名属性。该属性用于存储文件名,还包含文件大小、时间等信息。,数据属性,即($DATA,0x80)。这个属性存放文件的内容。 常驻数据属性,可以看到,常驻数据属性的内容直接跟着属性头之后,一起存储在MFT中。,非常驻数据属性,一个簇流项合一分为以下三部分: 1、第一个字节为第一部分,分为高4bit和低4bit,其中低4bit说明第二个部分的字节数。高4bit说明第三部分的字节数 2、第二部分从第二个字节开始,长度为第一部分的低4bit描述的字节数,用以说明簇流的长

12、度,即该簇流包含的簇数。 3、第三部分跟着第二部分,长度为第一部分高4bit描述的字节数,用以说明簇流起始簇号。,可以看到,簇流起始位置为561055(0x 08 8F 9F)号簇。簇流长度为12(0x0C)个簇,其他属性,0x60 卷名属性($VOLUME_NAME)用来记录卷名。最长为127个unicode字符。 0x90 索引根属性($INDEX_ROOT)为实现B+树设置的根节点。 0xA0 索引分配属性($INDEX_ALLOCATION)用于存放索引项。索引分配属性总是非常驻属性,由一个个的索引记录组成。索引记录存储在MFT之外的簇空间中,每个索引记录有固定的大小,并包含一个分类树

13、中的节点,大小通常为4096字节。,0xB0 位图属性($BITMAP)用于描述索引或$MFT的分配情况。对于索引,它用1bit描述索引的一个VCN,对于$MFT,用1bit描述一个MFT项的分配情况。 0xC0 重解析点属性 0x100 安全属性,NTFS文件存储的定位,1、在G盘根目录创建文件,2、打开G盘,查看其DBR表,将文件名另存为16进制格式 在winhex中打开,找到G盘的MFT,查找“测试文件”对应的16进制字串,解析这一部分的结构可知:,1、该文件占用了6个簇 2、该文件起始位置 LCN为0x 62 4F=25167(?扇区),定位并复制文件数据,请思考,为什么两次操作后文件的实际大小不一致?,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报