NTFS:多个 $DATA 属性,同名
NTFS: Multiple $DATA attributes, with the same name
我知道NTFS支持ADS,也就是多数据流,每一个都有不同的名称。但是,我目前正在尝试解析我的卷,并且特定的 MFT 记录拥有 3 个 未命名,唯一(大小和数据运行不同)数据流。
该文件填充了 256mb 的“~”(单个字符),所有数据流都在相关的 MFT 记录中找到,这些记录是从属性列表属性中收集的。在正常的 "flow" 中,我会解析所需流的数据运行,并从所需的偏移量中读取所需的长度。我应该如何处理这种情况? (==读取文件内容)
每个备用数据流 (ADS) 都应该有一个唯一的名称。没错,你有几个类型为 $DATA
的属性,但它们应该有不同的名称。例如。如果某些文件 multiple.txt 具有名称为 overhere 的 ADS,它应该具有以下 $DATA
属性。来自 here 的示例:
Type: $DATA (128-1) Name: $Data Resident size: 15
Type: $DATA (128-5) Name: overhere Resident size: 26
128-1的全名是multiple.txt 128-5的全名是multiple.txt:overhere
其他未命名的属性通常是:
Type: $STANDARD_INFORMATION (16-0) Name: N/A Resident size: 72
Type: $FILE_NAME (48-2) Name: N/A Resident size: 90
Type: $OBJECT_ID (64-3) Name: N/A Resident size: 16
为您的 MFT 记录尝试 istat Sleuthkit 实用程序:
istat -f ntfs <SourceName> <ID>
使用 other tools from collection 您将能够复制这些数据流的内容。
它是开源的,因此您可以查看 NTFS 实现的细节并研究如何从 $DATA
.
中检索数据
我知道NTFS支持ADS,也就是多数据流,每一个都有不同的名称。但是,我目前正在尝试解析我的卷,并且特定的 MFT 记录拥有 3 个 未命名,唯一(大小和数据运行不同)数据流。 该文件填充了 256mb 的“~”(单个字符),所有数据流都在相关的 MFT 记录中找到,这些记录是从属性列表属性中收集的。在正常的 "flow" 中,我会解析所需流的数据运行,并从所需的偏移量中读取所需的长度。我应该如何处理这种情况? (==读取文件内容)
每个备用数据流 (ADS) 都应该有一个唯一的名称。没错,你有几个类型为 $DATA
的属性,但它们应该有不同的名称。例如。如果某些文件 multiple.txt 具有名称为 overhere 的 ADS,它应该具有以下 $DATA
属性。来自 here 的示例:
Type: $DATA (128-1) Name: $Data Resident size: 15
Type: $DATA (128-5) Name: overhere Resident size: 26
128-1的全名是multiple.txt 128-5的全名是multiple.txt:overhere
其他未命名的属性通常是:
Type: $STANDARD_INFORMATION (16-0) Name: N/A Resident size: 72
Type: $FILE_NAME (48-2) Name: N/A Resident size: 90
Type: $OBJECT_ID (64-3) Name: N/A Resident size: 16
为您的 MFT 记录尝试 istat Sleuthkit 实用程序:
istat -f ntfs <SourceName> <ID>
使用 other tools from collection 您将能够复制这些数据流的内容。
它是开源的,因此您可以查看 NTFS 实现的细节并研究如何从 $DATA
.