NTFS:多个$ DATA属性,名称相同

时间:2016-11-16 09:29:15

标签: c++ windows ntfs

我知道NTFS支持ADS,这意味着多个数据流,而每个数据流都有不同的名称。但是,我目前正在尝试解析我的卷,并且特定的MFT记录拥有3个未命名,唯一(大小和数据运行不同)数据流。 该文件填充256mb的“〜”(单个字符),所有数据流都在相关的MFT记录中找到,这些MFT记录收集了属性列表属性。在正常的“流程”中,我将解析所需流的数据运行,并从所需的偏移量中读取所需的长度。我该怎么处理这种情况? (==阅读文件的内容)

1 个答案:

答案 0 :(得分:1)

每个备用数据流(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检索数据的方式。