$AttrDef元文件定义了卷中所有可用文件属性的信息,它由4个属性构成,如图4-453所示。
图4-453 $AttrDef的文件记录
(1)10H属性
10H属性定义了$Volume创建时间、最后修改时间、该MFT修改时间、文件最后访问时间、文件标志等信息。
(2)30H属性
30H属性定义了$AttrDef的父目录文件参考号为根目录;定义了该文件的一些时间属性、系统分配给$AttDef的大小(这里为9000H字节)及实际使用的大小(这里为8CA0H字节);定义了文件的标志为06H,表示其为隐藏、系统文件;定义了文件名的长度为8个字符、命名空间为3,也即Win32 & DOS;在属性的最后定义了该文件的文件名为Unicode字符串“$AttrDef”。
(3)50H属性
50H属性定义了该文件的安全信息。
(4)80H属性
在例子中,该属性为非常驻属性,Data Run(数据流)的起始VCN为0,结束VCN为0,即占用一个簇,系统分配的大小为4096字节,实际用了2560字节,开始的LCN号为4011H,占用一个簇。具体参数如图4-454所示。
图4-454 $AttrDef文件的80H属性模板
该文件的数据流由一系列记录组成,每一条记录定义一个文件属性,它的描述见表4-79。
表4-79 属性定义记录描述
图4-455是该数据属性数据流的部分内容,这里就其中第一个属性定义也就是10H属性定义进行分析。
图4-455 $AttrDef的数据流部分
图4-455中的阴影部分是对10H属性的定义,具体参数含义见表4-80。
表4-80 对10H属性的定义
字节偏移 | 字段长度(字节) | 描述 | 数值 |
0x00 | 128 | Unicode字符的标签 | $STANDARD_INFORMATION |
0x80 | 4 | 类型 | 10 |
0x84 | 4 | 显示规则(总为0) | 00 |
0x88 | 4 | 校对规则 | 00 |
0x8C | 4 | 标志 | 40(表示常驻) |
0x90 | 8 | 最小尺寸 | 30 |
0x98 | 8 | 最大尺寸 | 48 |