我正在检查NTFS(新技术文件系统)并且一直在试图找出$ ATTRIBUTE_LIST属性的循环中。从this documentation开始,遇到$ ATTRIBUTE_LIST并不常见,只有在MFT表空间不足时才会使用它们。但是,通过查看以下解析器,我发现它们确实解析了它:
从这些看,我提出了以下流程图:
(“有$ ATTRIBUTE_LIST”的权利应该是“是”)
我想参考流程图右侧的2个流程。这是正确的:
答案 0 :(得分:1)
只有在 MFT表用完房间时才会使用
这不正确。只要MFT 条目太大而无法容纳所有属性,就会使用它们。
仅当属性的FRN与包含属性列表FRN的文件不同时才解析该属性?
这取决于操作系统/软件,我想,但它有点合理。虽然$ATTRIBUTE_LIST
必须包含所有属性的列表,但您可以枚举" local"简单地解析整个MFT条目的属性。例如,我的软件RecuperaBit就是这样做的。
相反,您需要列表来确定" remote"存储属性。
或者,属性中列出的FRN是否仅用于此文件记录的属性(而不是真正的文件)?
其编号包含在$ATTRIBUTE_LIST
属性中的MFT条目不包含$DATA
属性,也不具有$FILE_NAME
属性。它不是一个文件,它只是一个额外的MFT条目。
注意:我编辑了答案,因为我使用的是#34;居民"以一种令人困惑的方式来引用基本MFT条目中的属性。但是,常驻属性的概念是另一回事。
答案 1 :(得分:1)
属性头不能是非驻留的(由数据运行条目描述),因为它们是 MFT 结构的一部分,只有属性的主体可以是非驻留的并由数据运行条目描述;此外,非常驻属性主体(包含数据运行)也不能是非常驻的,因为属性头中没有这样的选项或第二常驻位。因此,当所有标头本身不再适合 MFT 条目时,您需要一个 $ATTRIBUTE_LIST
属性来引用包含其余属性标头的 MFT 条目。 $ATTRIBUTE_LIST
条目指向扇区对齐 MFT 条目的扇区,该条目包含所描述的特定属性标头(数据、文件名等)。
插入的 $ATTRIBUTE_LIST
本身可以是非常驻的,这意味着如果 $ATTRIBUTE_LIST
的常驻属性主体描述了首先导致 MFT 条目溢出的属性数量对于 MFT 条目来说也太大,那么它可以是非常驻的,因此可以引用尽可能多的属性和包含它们的 MFT 条目。
LowestVcn
的 $ATTRIBUTE_LIST
成员在 MFT 条目溢出(标题不再适合其中)时使用,因为其中一个非常驻属性中有大量数据运行条目(其本身不能成为非居民);在这种情况下,它会在 MFT 条目中插入一个 $ATTRIBUTE_LIST
,并且在属性列表中将有 2 个具有相同属性(流)类型和相同属性(流)名称的条目,除了 LowestVcn
不同。指向的 MFT 条目将包含具有该流名称的数据属性,并将覆盖数据运行的特定 VCN 范围(数据运行本身由运行条目中的 LCN 描述,其中每个运行具有不同的独立连续 LCN 范围,但实际上数据运行条目本身描述了一个连续块,其 VCN 从 0 开始到所有 LCN 范围组成的集群总数;VCN 是根据运行条目分配的)。
同样,如果非常驻属性主体变得太大的属性是 $ATTRIBUTE_LIST
本身,那么您会得到另一个 $ATTRIBUTE_LIST
,其中的条目指定了涵盖数据运行的 MFT 条目的条目属性列表(每个 MFT 覆盖数据运行的特定范围的 VCN)。这种情况极为罕见。