File - $AttrDef
概述
$AttrDef 是一个系统文件,它包含了卷中所有可用的文件属性信息。
属性结尾标记为: 0xFFFFFFFF
属性
类型 |
描述 |
名称 |
0x10
|
$STANDARD_INFORMATION |
|
0x30
|
$FILE_NAME |
$AttrDef |
0x50
|
$SECURITY_DESCRIPTOR |
|
0x80
|
$DATA |
未命名 |
文件结构
未命名数据流
它的结构是一个记录序列,每个记录定义一个文件属性,结构如下:
偏移量 |
大小 |
描述 |
0x00 |
128 |
标准编码的标签 |
0x80 |
4 |
类型 |
0x84 |
4 |
显示规则 |
0x88 |
4 |
校勘规则 |
0x 8C |
4 |
标记 |
0x90 |
8 |
最小尺寸 |
0x98 |
8 |
最大尺寸 |
注意:
显示规则:
此时总为零
校勘规则:
此时一般为零,但可能值是:
标记 |
描述 |
0x00 |
二进制 |
0x01 |
文件名 |
0x02 |
双字节编码字串 |
0x10 |
无符号的长整型 |
0x11 |
SID |
0x12 |
Security Hash |
0x13 |
Multiple Unsigned Longs
|
标记:
我们只搞明白 3 个标记: 0x02, 0x40 and 0x80. 0x40 和 0x80 好像从不一起出现。因此推测如下:
标记 |
描述 |
0x02 |
已被索引 |
0x40 |
常驻的 |
0x80 |
非常驻的 |
观察下面表格中的 IRN 一栏
Windows NT Example
$VOLUME_VERSION和$SYMBOLIC_LINK在win2k和winxp中没有出现,在WINNT中出现但是没有使用。
Windows 2000 and Windows XP Example
Type |
Name |
Flags |
IRN |
Min Size |
Max Size |
0x10 |
$STANDARD_INFORMATION |
0x40 |
R |
0x30 |
0x48 |
0x20 |
$ATTRIBUTE_LIST |
0x80 |
N |
- |
- |
0x30 |
$FILE_NAME |
0x42 |
IR |
0x44 |
0x242 |
0x40 |
$OBJECT_ID |
0x40 |
R |
- |
0x100 |
0x50 |
$SECURITY_DESCRIPTOR |
0x80 |
N |
- |
- |
0x60 |
$VOLUME_NAME |
0x40 |
R |
0x2 |
0x100 |
0x70 |
$VOLUME_INFORMATION |
0x40 |
R |
0xC |
0xC |
0x80 |
$DATA |
0x00 |
|
- |
- |
0x90 |
$INDEX_ROOT |
0x40 |
R |
- |
- |
0xA0 |
$INDEX_ALLOCATION |
0x80 |
N |
- |
- |
0xB0 |
$BITMAP |
0x80 |
N |
- |
- |
0xC0 |
$REPARSE_POINT |
0x80 |
N |
- |
0x4000 |
0xD0 |
$EA_INFORMATION |
0x40 |
R |
0x8 |
0x8 |
0xE0 |
$EA |
0x00 |
|
- |
0x10000 |
0xF0 |
$PROPERTY_SET |
? |
? |
? |
? |
0x100 |
$LOGGED_UTILITY_STREAM |
0x80 |
N |
- |
0x10000 |
$PROPERTY_SET 暂时出现在 NTFSv3.0 中,它预计支持本地结构存储( NSS )
其它信息:
往这个文件里面添加用户自定义的属性应该是可以的。
$AttrDef 的大小
在 NT4 里是 36k ,大部分为空白
2000 和 xp 里面是 2680 = 15 属性+ 1 空白( 2.5k )
2004.04.09
感谢:特别感谢开放源代码项目 Linux-NTFS Project 众多的 Linux 爱好者们,正因为他们多年来的不懈努力才使得
NTFS 文件系统的面纱被慢慢的揭开,并且通过开放源代码的威力让更多的编程爱好者在本文档的基础上编写了丰富的开源数据恢复及系统恢复等灾难拯救项目,你可以通过以下网址访问本项目位于
sourceforge.net 的原英文站点(http://linux-ntfs.sourceforge.net)
此版中文译本翻译、校正、注释并首发于时代http://www.getmydata.cn
转载请保留以上文字及连接,谢谢!
|