1. 背景
本文主要介绍$Root元文件的解析。先介绍元文件的构成及各个部分的结构,然后结合上一篇博文中读取到的元文件内容,对测试磁盘中目标分区的根目录进行展示。
2. $Root元文件解析
(1)$Root元文件的结构
$Root元文件由两部分构成,即文件头和属性列表,最后以4个FF结尾。$Root元文件占用2个扇区,即1KB(1024字节),但并非所有这1024字节都存放着有效内容,4个FF之后的部分就是无效的数据,可以直接忽略。上文所读取的$Root元文件结构如下图所示:
需要注意的是,每个扇区的最后两个字节都具有特殊用途,存放的都是更新序列号,与文件头部分的更新序列号相同。
对于前16个$MFT元文件,它们都拥有和$Root一样的构成。其中,文件头的长度和结构是不变的,但是属性列表是可变的,例如,0号元文件包含10H、30H、80H、B0H属性,1号元文件包含10H、30H、80H属性,2号元文件包含10H、30H、80H属性,3号元文件包含10H、30H、50H、60H、70H、80H属性,4号元文件包含10H、30H、50H、80H属性,5号元文件包含10H、30H、40H、50H、90H、A0H、B0H属性,6号元文件包含10H、30H、80H属性,7号元文件包含10H、30H、50H、80H属性,8号元文件包含10H、30H、80H属性。
(2)$Root元文件的