2

我正在检查 NTFS(新技术文件系统)并陷入了一个循环,试图找出 $ATTRIBUTE_LIST 属性。在本文档中,遇到 $ATTRIBUTE_LIST 是不常见的,它们仅在 MFT 表空间不足时使用。但是,通过查看以下解析器,我发现他们确实解析了它:

通过查看这些,我提出了以下流程图:

属性列表流程图

(“Has $ATTRIBUTE_LIST”右边应该有一个yes)

我想参考流程图右侧的2个过程。是否正确:

  1. 仅当 FRN 与包含属性列表 FRN 的文件不同时才解析该属性?
  2. 属性被添加到文件中,其 FRN 列在属性中,而不是 FRN 包含属性列表?或者,属性中列出的 FRN 是否仅用于此文件记录的属性(而不是真正的文件)?
4

2 回答 2

1

它们仅在 MFT 表空间不足时使用

这是不正确的。当 MFT条目太大而无法容纳所有属性时,就会使用它们。

仅当 FRN 与包含属性列表 FRN 的文件不同时才解析该属性?

我猜这取决于操作系统/软件,但这有点道理。虽然$ATTRIBUTE_LIST必须包含所有属性的列表,但您可以通过简单地解析整个 MFT 条目来枚举“本地”属性。例如,我的软件RecuperaBit就是这样做的。

相反,您需要该列表来确定“远程”属性存储在哪些其他 MFT 条目中。

或者,属性中列出的 FRN 是否仅用于此文件记录的属性(而不是真正的文件)?

编号包含在$ATTRIBUTE_LIST属性中的MFT条目不包含$DATA属性,也没有$FILE_NAME属性。它不是一个文件,它只是一个额外的 MFT 条目。


注意:我编辑了答案,因为我以一种令人困惑的方式使用“居民”一词来引用基本 MFT 条目中的属性。但是,驻留属性的概念是另一回事。

于 2017-03-14T22:04:46.440 回答
1

属性标题不能是非常驻的(由数据运行条目描述),因为它们是 MFT 结构的一部分,只有属性的主体可以是非常驻的并由数据运行条目描述;此外,非常驻的属性体(包含数据运行)也不能是非常驻的,因为在属性头中没有这样的选项或第二个常驻位。因此,当所有标题本身不再适合 MFT 条目时,您需要一个$ATTRIBUTE_LIST属性来引用包含其余属性标题的 MFT 条目。该$ATTRIBUTE_LIST条目指向扇区对齐的 MFT 条目的扇区,该条目包含所描述的特定属性标头(数据、文件名等)。

插入的$ATTRIBUTE_LIST本身可以是非常驻的,这意味着如果$ATTRIBUTE_LIST描述导致 MFT 条目溢出的属性数量的常驻属性主体对于 MFT 条目来说也太大,那么它可以是非驻留的-resident,因此可以引用尽可能多的属性以及包含它们的 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数据运行)。这是极为罕见的情况。

于 2021-03-12T04:12:13.773 回答