mft文件记录属性头包括_4-ntfs属性分析.ppt

本文深入分析NTFS文件系统的主文件表(MFT)记录属性,包括标准信息、文件名、数据属性和位图属性。讨论了属性头的结构、时间戳、文件名转换规则以及数据流的存储位置。通过实例展示了如何解析MFT记录,理解文件在NTFS卷中的存储方式和删除机制。
摘要由CSDN通过智能技术生成

《4-ntfs属性分析.ppt》由会员分享,可在线阅读,更多相关《4-ntfs属性分析.ppt(24页珍藏版)》请在微传网上搜索。

1、NTFS属性分析,,MFT文件记录结构,主文件表的文件记录由记录头和属性列表组成,大小为1KB或一个簇大小。属性列表长度可变,以“FF FF FF FF”结束。对于1KB长度的MFT记录,属性列表的起始偏移为0x30文件通过MFT来确定存储位置。MFT是一个对应的数据库,由一系列文件记录组成--卷中每个文件都有一个文件记录(大型文件可能有多个记录与之对应),其中第一个文件记录称为基本文件记录,,MFT文件的MFT分析MFT头10H类型属性(标准属性信息)30H类型属性(文件名属性)80H类型属性(数据属性)B0H类型属性(位图属性)MFT结束标志,,,,,,,,,,记录头的结。

2、构,每次记录修改都导致日志文件序列号($LogFile Sequence Number)变化序列号(sn)用于记录主文件表记录被重复使用的次数硬链接数记录硬链接数目,只出现在基文件记录中文件记录的实际长度是文件记录在磁盘上实际占用的字节空间基文件记录中的文件索引号,对于基本文件记录,其值为0,如果不为0,则是一个主文件表的文件索引号,指向所属的基本文件记录中的文件记录号,在基本文件记录中包含有扩展文件记录信息,储存在“属性列表”属性中,,,10属性,相对本属性起始地址,从偏移00H开始的四个字节表示类型,即属性名,这里是10H,在$AttrDef中,10H表示标准信息,所以,这里就是标。

3、准信息,前面已经介绍,所有的属性都有头部和属性值组成,标准属性也一样,有一个标准的属性头,其头部结构如表,,从偏移00H开始的四个字节表示类型,即属性名,这里是10H,在SAttrDef中,10H表示标准信息;从偏移04H开始的4个字节表示本属性长度,包括头部,这里是60H,即本属性长度为96个字节,从属性开始的38H算起,38H+60H=98H,所以下一个属性的起始偏移为98H。从偏移08H开始的一个字节是非常驻标志,0表示本属性值常驻,1表示非常驻:从偏移09H开始的1字节表示属性名长度,为0表示是$AttrDef中定义的标准属性;从偏移0AH开始的两个字节表示名称相对于本属性起始。

4、地址的偏移值,由于名称长度为0,所以这里的值没有意义;从偏移0CH开始的两个字节是标志字节;从偏移0EH开始的两个字节是标识字;从偏移10H开始的四个字节表示常驻属性值的长度,此处为48H,表示属性部分占用48H,属性头为18H;属性值为48H,共计18H+48H=60H,是属性长度;从偏移14H开始的两个字节表示相对属性起始地址的属性的起始偏移地址:从偏移16H开始的1个字节表示索引标志;从偏17H开始的字节为填充字节;从偏移18H开始的L(L为属性长度)个字节为属性字节,所使用的偏移是相对于属性内容起始偏移的偏移,即相对于属性头起始偏移0x18处,相对于整个文件记录偏移0x48处。,。

5、标准属性的结构,,文件属性含义,,时间日期域的意义,在本属性内从偏移18H开始,至偏移37H止,共20H个字节,即32个字节,分为4组,每组8个字节,分别表示创建时间、修改时间、最后的一次MFT更新时间和最后一次的访问时间,每8个字节按从低到高的顺序存储,即高位字节在后,如创建时间“E0 E3 E1 A0 66 E9 C3 0I”,应该是01C3E966A0E1E3E0H;换算成I0进制所得到的结果为从1601-1-1开始的1/10000000的秒数,即千万分之一的秒数;如01 C3 E9 66 A0 E1 E3 E0H =127201841491600352D,此数乘以1/1000000。

6、0所得结果即为从1601-1-1开始秒数,这里是12720184149.1600352秒。,30属性(文件名),标准属性之后的是文件名属性,文件名属性也一定是常驻属性,用于存储文件名。如$AttrDef中定义,其大小从68字节到578字节不等,与最大文件名为255个Unicode字符文件名属性也由一个标准的属性头和可变长度的属性内容组成,文件名属性的属性头结构,,文件名属性内容结构,,文件标志含义,,命名空间,将一个POSIX或Win32文件名转换成一个DOS友好的文件名,遵循以下步骤: 删除所有Unicode字符;删除所有的“.”,保留最后但又不是第一个字符的“.”;将所有字母转换成。

7、大写字母;删除禁止使用的字符:截断“.”之前的所有字符,使之只保留6个字符,然后加上“~1”;截断“.”后3个字符以后的所有字符:如果这样得到的文件名已经存在,将“~1”值递增,这也意味着,即使产生的DOS文件名是惟一的,也不能断定产生这个DOS名的Win32文件名是惟一的。根据图可以知道,其文件名为Win32&DOS类型,长为4个字符,从偏移0x42开 始,所以文件名为“24004D0046005400",因为是Unicode字符,所以占用了8个字节, 也就是“$MFT”。,数据流,,80属性,数据流的属性头,分析,对照图表可以知道,文件的起始VCN为0,结束VCN为0X1F。

8、F1=8177,所以文件$MFT共占用8178个簇,由于簇大小为8个扇区,所以,文件$MFT分配大小为8178x8x512=33497088=0x1FF2000,与0x28处的值刘照可以看到,两个值相等。属性值实际大小为0X1FF1C00=33496064字节,3496064/220=31.9443359375MB,也就是31.9MB,具体存储位置分析,那么这些属怕姬到底存储在什么地方呢?这就是数据运行了从属性头可知,数据运行的起始偏移为0x40,从这里开始的8个字节为“32 F2 1F 00 00 0C 00 00”。这些运行含义如下:“32 F2 1F 00 00 0C”中,“3”。

9、表示后面5个字节中后面的3个字节是运行的起始簇号,即运行的起始簇号为“0C0000”,颠倒过来是因为高位字节在后,“2”表示前面的2个字节表示运行的大小,即该运行的大小为“1F F2”。所以,文件$MFT的数据实际上存储在起始簇号为“0C 00 00”即786432簇的地方,共“1F F2”即8178个簇。用VCN表示就是:起始的VCN为0,结束的VCN为8177,共8178个簇。用LCN表示就是起始LCN=786432,结束LCN=786432+8177=794609,因为簇因子(卷因子)是8,所以,实际的起始扇区号786432 x 8=6291456,$MFT的簇是连续的,所以只有一个。

10、运行。,有多个运行的情况,,分析,图所示的$Secure文件的数据运行,内容为“21 48 06 24 31 01 F3 AA 02 31 01 0D 0A 05 31 01 F3 38 02 31 01 C3 4B 05 00 A2 6B 81 D0 50 3D El”按原则依次划分为21:48 06 24;31:0I F3 AA 02;31:01 0D 0A 05;31:01 F3 38 02;31:01 C3 4B 05,由于到此处下一个运行为‘‘00”打头,所以就结束了,共5个运行。,分析,VCN从0到75,只有76个簇,所以文件本身并不大,但比较分散,不是连续存储首先,第一个运行。

11、为2l 48 06 24,所以,起始的LCN=2406H=9222,长度为48H=72个簇,即结束LCN=9222+71=9293;第二个运行是31:01 F3 AA 02,同理,后3位“02AAF3‘’表示的是下一段LCN的起始值,但这里不足直接用“02 AA F3”来表示,而是用与前一个运行的相对值来表示的,所以,这一个LCN的起始是02 AA F3H + 2406H =2CEF9H=184057,长度为1个簇;第三个运行为31:01 0D 0A 05,所以,起始LCN=2CEF9H+050A0DH=7D906H=514310,长度仍然只有一个簇;下一个运行31:0I F3 38 0。

12、2表示起始LCN=7D906H+0238F3H=0A11F9H=659961;再下一个运行31:01 C3 4B 05表示起始LCN=0A11F9H+054BC3H=0F5DBCH=1007036。,位图,,NTFS卷中文件的删除,在NTFS卷中删除一个文件时,系统至少在三个地方做了改变:一是该文件MFT头偏移16H处的一个字节,该字节为0表示文件被删除,为1表示该文件是正被使用的文件,为2表示其是一个目录,为03的时候表示其为删除目录;二是其父文件夹的INDEX_ROOT属性(90H属性)或者INDEX_ALLOCATION(A0H属性);三是在位图($Bitmap)元数据文件中把该文件所占用的簇对应的位置置0,这样好给其他文件腾出空间。,。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值