数据恢复相关文章
·常见问题及解答
·延长硬盘寿命的方法
·选择NTFS还是FAT?
·了解IDE硬盘接口
·了解SCSI接口
·NTFS文件系统概述
·File - $MFT
·File - $MFTMirr
·File - $LogFile
·File - $Volume
·File - $AttrDef
·File - .(RootDirectory)
 
 
 
 
 
 

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

Type

Name

Flags

IRN

Min Size

Max Size

0x10

$STANDARD_INFORMATION

0x40

R

0x30

0x30

0x20

$ATTRIBUTE_LIST

0x80

N

-

-

0x30

$FILE_NAME

0x42

IR

0x44

0x242

0x40

$VOLUME_VERSION

0x40

R

0x8

0x8

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

$SYMBOLIC_LINK

0x80

N

-

-

0xD0

$EA_INFORMATION

0x40

R

0x8

0x8

0xE0

$EA

0x00

 

-

0x10000

$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

转载请保留以上文字及连接,谢谢!

  北京中心 电话:010-51652340 邮编:100088 地址:北京市西城区新街口外大街2号有研大厦B座215室(北三环北太平桥东南角)
  天津中心 电话:022-85687187 邮编:300070 地址:天津市和平区卫津路佳怡国际D座904室
  上海中心 电话:021-61103752 邮编:200070 地址:上海市恒丰路120号一天下大厦14C02室(汉中路地铁站4号出口)
数据恢复 数据恢复案例 数据恢复报价 数据恢复技术 数据恢复中心简介 数据恢复中心联系方式