文件 - $Secure (9)
前一页
后一页
概述
在NTFS v1.2里,每个文件都有一个安全描述符($SECURITY_DESCRIPTOR)
属性。 它无法读取和检查每个文件的存取,而且它们大多数是一样的。NTFSv3.0引入了一个新的元数据文件$Secure。
安全标识符,在标准信息($STANDARD_INFORMATION)里的一个新区域,是一个进入$Secure的索引。这里的$SDS是一个数据流,$SII 和$SDH是
两个索引,这个数据流拥有一个在卷上每个安全描述符($SECURITY_DESCRIPTOR)
属性的拷贝,而这两个索引可交叉参考每件事。
文件结构
$SDS数据流
这个安全描述符流($SDS)包含一个卷上所有安全描述符的列表。
每一项都填到一个16字节边界并有一个用于索引的无用信息。
偏移量 |
大小 |
描述 |
0x00 |
4 |
安全描述符的无用信息 |
0x04 |
4 |
安全标识符 |
0x08 |
8 |
文件中的项的偏移量 |
0x10 |
4 |
项的大小 |
0x04 |
V |
自相关的安全描述符 |
V+0x04 |
P16 |
填料 |
由安全标识符分类
自相关? == 2 * SID
一般是一个大文件,不是所有都用
这里也许有丢失的入口--测试
开始是标识部分的大模块,然后是垃圾,然后是另一个256KB的模块
$SDH索引
安全描述符无用信息索引
偏移量 |
大小 |
值 |
描述 |
~ |
~ |
~ |
标准索引标题 |
0x00 |
2 |
0x18 |
到数据的偏移量 |
0x02 |
2 |
0x14 |
数据的大小 |
0x04 |
4 |
0x00 |
填料 |
0x08 |
2 |
0x30 |
索引项的大小 |
0x0A |
2 |
0x08 |
索引键的大小 |
0x0C |
2 |
|
标记 |
0x0E |
2 |
0x00 |
填料 |
0x10 |
4 |
|
键 |
安全描述符的无用信息 |
0x14 |
4 |
|
键 |
安全描述符 |
0x18 |
4 |
|
数据 |
安全描述符的无用信息 |
0x1C |
4 |
|
数据 |
安全描述符 |
0x20 |
8 |
|
数据 |
到安全描述符的偏移量 (在 $SDS里) |
0x28 |
4 |
|
数据 |
安全描述符的大小 (在 $SDS里) |
0x2C |
P8 |
|
数据 |
填料 |
最后一个填料一般是4个字节,并总是表示为
Unicode 标准编码字串"II".
$SII索引
安全标识符索引($SII)
偏移量 |
大小 |
值 |
描述 |
~ |
~ |
~ |
标准索引标题 |
0x00 |
2 |
0x14 |
到数据的偏移量 |
0x02 |
2 |
0x14 |
数据的大小 |
0x04 |
4 |
0x00 |
填料 |
0x08 |
2 |
0x28 |
索引项的大小 |
0x0A |
2 |
0x04 |
索引键的大小 |
0x0C |
2 |
|
标记 |
0x0E |
2 |
0x00 |
填料 |
0x10 |
4 |
|
键 |
安全标识符 |
0x14 |
4 |
|
数据 |
安全描述符的无用信息 |
0x18 |
4 |
|
数据 |
安全描述符 |
0x1C |
8 |
|
数据 |
到安全描述符的偏移量(在 $SDS里) |
0x24 |
4 |
|
数据 |
安全描述符的大小 (在 $SDS里) |
文件由无用信息分类。
安全描述符存储在$SDS数据流里。
偏移量很特别(64比特不是8字节排列)
注意
问题
- 为什么一些文件还有安全描述符属性($SECURITY_DESCRIPTOR Attribute)?
- 安全无用信息是怎么产生的?
Online
中文在线
Validate HTML
Validate CSS
$Id: secure.html,v 1.12 2001/07/11 11:04:05 flatcap Exp $