在最初的NTFS版本中,每个文件都有一个$SECURITY_DESCRIPTOR(安全描述符)属性,即50H属性。由于大多数文件的安全描述符都是一样的,因此,检查每一个文件的访问权限将会导致效率低下。所以,在NTFS 3.0版本中新引入了一个元文件$Secure,同时,在$STANDARD_INFORMATION(标准信息)中新增加了一个数据——安全ID,这个ID是$Secure文件的一个索引,它有一个数据流$SDS、两个索引$SII和$SDH,该数据流是卷上各种安全描述符的一个备份,而索引是所有事物的一个交叉参考。元文件$Secure由很多属性构成,如图4-460所示。

元文件$Secure分析-数据恢复迷

图4-460 $Secure的文件记录

(1)10H属性

10H属性用来定义$Secure的创建时间、最后修改时间、该MFT修改时间、文件最后访问时间、文件标志等信息。

(2)30H属性

30H属性定义了$Secure的父目录的文件参考号为根目录、$Secure的一些时间属性、系统分配给$Secure的大小(这里为0字节)、实际使用的大小(这里为0字节)、文件的标志;定义了该文件名的长度为7个字符、命名空间为3,即Win32 & DOS命名空间;在属性的最后定义了该文件的文件名为Unicode字符串“$Secure”。

(3)80H属性

80H属性是命名数据流,属性名为SDS(Security Descriptor Stream),即$SDS数据流,包含有卷上所有安全描述的一个列表,每个条目都补足16字节,并有一个用于索引的哈希表,见表4-82。

表4-82 $SDS数据流

字节偏移 字段长度(字节) 描述
0x00 4 安全描述的哈希表
0x04 4 安全ID
0x08 8 本条目在文件中的偏移地址
0x10 4 本条目的长度
0x04 V 相关的(参考)安全描述符
V+0x04 P16 用于填充到16字节(无意义)

(4)第一个90H属性

第一个90H属性的属性名为$SDH,它是安全描述符的哈希索引,其含义见表4-83。

表4-83 $SDH索引

元文件$Secure分析-数据恢复迷

(5)第二个90H属性

第二个90H属性的属性名为$SII,它是安全ID索引,其描述见表4-84。

表4-84 $SII索引

元文件$Secure分析-数据恢复迷

文件以哈希方式存储,安全描述存储在$SDS数据流中。

(6)第一个A0H属性

第一个A0H属性的属性名为$SDH,关于$SDH索引具体描述见表4-83。

(7)第二个A0H属性

第二个A0H属性的属性名为$SII,关于$SII索引的描述见表4-84。

(8)第一个B0H属性

第一个B0H属性的属性名为$SDH,它定义了$SDH索引的LCN的使用情况,这里为01,表示用了一个簇。

(9)第一个B0H属性

第一个B0H属性的属性名为$SII,它定义了$SII索引的LCN的使用情况,这里为01,表示用了一个簇。