硬盘NTFS分区MFT文件记录结构

[复制链接]

该用户从未签到

472

主题

532

回帖

1万

积分

[INTOHARD]旅长

Rank: 9Rank: 9Rank: 9

积分
16542
发表于 2008-5-17 01:32:26 | 显示全部楼层 |阅读模式
MFT文件记录结构分析
主文件表MFT的文件记录由记录头和属性列表组成,由“FF FF FF FF”结束,一般大小为1K,或一个[wiki]簇[/wiki]大小,记录头包括以下一些域:
偏移 长度([wiki]字节[/wiki]) 属性
0X00 4 标志,一定是“FILE”
0X04 2 更新序列US的偏移
0X06 2 更新序列号USN的大小与数组,包括第一个字节
0X08 8 日志文件序列号LSN
0X10 2 序列号(SN)
0X12 2 硬连接数
0X14 2 第一个属性的偏移地址
0X16 2 标志,1表示记录正在使用,2表示该记录为目录
0X18 4 记录头和属性的总长度,即文件记录的实际长度,
0X1C 4 总共分配给记录的长度
0X20 8 基本文件记录中的文件索引号
0X28 2 下一属性ID
0X2A 2 XP中使用,边界
0X2C 4 XP中使用,本文件记录号

每次记录被修改都将导致日志文件序列号$LogFile Sequence Number(LSN)发生变化。
序列号Sequence Number(SN)用于记录主文件表记录被重复使用的次数。
硬连接数Hard Link Count记录硬连接的数目,只出现在基本文件记录中。
文件记录的实际长度是文件记录在磁盘上实际占用的字节空间。
基本文件记录中的文件索引号,对于基本文件记录,其值为0,如果不为0,则是一个主文件表的文件索引号,指向所属的基本文件记录中的文件记录号,在基本文件记录中包含有扩展文件记录的信息,[wiki]存储[/wiki]在“属性列表ATTRIBUTE_LIST”属性中。

属性列表是可变长度区,以“FF FF FF FF”结束,对于1K长度的MFT记录,属性列表的起始偏移为0x30。

索引记录结构分析

每一个索引记录都是由一个标准的索引头和一些包含索引键和索引数据的块组成的。索引记录的大小在引导记录 $Boot中定义,一般总是4KB。
标准索引头的结构如下:

偏移 大小 说明
0X00 4 总是“INDX”
0X04 2 更新序号偏移
0X06 2 更新序列号USN的大小与排列,包括第一个字节
0X08 8 日志文件序列号LSN
0X10 8 该索引缓冲在索引分配中的索引VCN
0X18 4 索引入口的偏移(相对于0X18)
0X1C 4 索引入口的大小(相对于0X18)
0X20 4 索引入口的分配大小(相对于0X18)
0X24 1 非页级节点为1(有子索引)
0X25 3 总是0
0X28 2 更新序列号
0X2A 2S-2 更新序列排列

常用索引列表

名称 索引 说明
$I30 文件名 目录使用
$SDH 安全描述 $SECURE
$SII 安全IDS $SECURE
$O 对象IDS $OBJID
$O 所有者IDS $QUOTA
$Q 配额 $QUOTA
$R 重解析点 $REPARSE

该用户从未签到

29

主题

1092

回帖

1万

积分

[INTOHARD]工兵

Rank: 1

积分
17691
QQ
发表于 2008-5-17 11:22:32 | 显示全部楼层

探讨一个问题!!

很多资料上在解释NTFS的文件记录中偏移0X16的解释是:1表示记录正在使用,2表示该记录为目录。但我的分析发现这个结论好像有点问题,我的理解是:1表示该记录文件(使用中);3表示该记录为目录(使用中);0表示文件已[wiki]删除[/wiki];2表示目录已删除。不知是否正确,大家说说看!!

该用户从未签到

28

主题

311

回帖

1146

积分

[INTOHARD]营长

Rank: 6Rank: 6

积分
1146
发表于 2008-5-17 11:33:38 | 显示全部楼层

回复 2# 的帖子

我也是看着有问题,老戴也是这么写的,当初我看的时候也不理解。
  • TA的每日心情
    慵懒
    2019-12-2 13:47
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    3

    主题

    375

    回帖

    763

    积分

    [INTOHARD]连长

    Rank: 4

    积分
    763
    发表于 2008-5-20 10:22:27 | 显示全部楼层
    看得不是很明白。
  • TA的每日心情
    开心
    2022-1-11 17:22
  • 签到天数: 108 天

    [LV.6]五品郎中

    4

    主题

    899

    回帖

    915

    积分

    [INTOHARD]连长

    Rank: 4

    积分
    915
    发表于 2008-5-20 21:43:13 | 显示全部楼层
    太深奥了,看不懂[s:17]

    该用户从未签到

    0

    主题

    27

    回帖

    85

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    85
    发表于 2008-5-24 11:34:05 | 显示全部楼层
    (38: 记下了

    该用户从未签到

    1

    主题

    8

    回帖

    48

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    48
    发表于 2008-5-25 16:17:42 | 显示全部楼层
    顶一个,简单了。看不是太明白,如果能把NTFS文件系统的数据存取结构画出来就好了。

    该用户从未签到

    2

    主题

    213

    回帖

    767

    积分

    [INTOHARD]连长

    Rank: 4

    积分
    767
    发表于 2008-5-28 16:40:03 | 显示全部楼层
    受教了,保存下来慢慢消化!
    谢谢LZ的无私奉献!
    (49: (49: (49:

    该用户从未签到

    0

    主题

    24

    回帖

    36

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    36
    发表于 2008-6-14 20:39:53 | 显示全部楼层
    受教了,保存下来慢慢消化

    该用户从未签到

    0

    主题

    4

    回帖

    3

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    3
    发表于 2008-6-29 22:23:31 | 显示全部楼层
    支持tclrz100e说法.顶!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表