我一直致力于从 MFT 检索文件信息。我看到 MFT 记录包含有关标准信息、文件名、数据和其他一些属性的信息。我尝试解析 MFT 记录以获取它包含的所有详细信息。我能够获得所有文件的文件名、数据(包括备用流的数据),但我无法获得命名备用数据流的文件名。出于测试目的,我创建了一个文件,其中包含两个命名的备用流,其中包含数据。当我解析与文件对应的 MFT 记录时,我无法识别备用流名称。这是否意味着备用流名称未存储在 MFT 中?那么某些实用程序(例如 stream.exe)如何识别备用流名称?
问问题
535 次
1 回答
2
如果您自己解析属性,则可以在其公共标头中找到属性名称的偏移量。如果我没记错的话,属性WORD
偏移处的标头中有一个值(我在这里找到了)。偏移量指向属性的名称。属性头大小+属性名称的长度+数据的长度(如果不是常驻则数据运行,否则为实际数据)应该与存储在公共头字段(偏移量)中的属性长度匹配。0x0A
0x04
如果您使用的是 Windows API,您可以对文件使用FindFirstStreamW函数来获取它的流。它通常返回一个包含流名称的WIN32_FIND_STREAM_DATA结构。
于 2015-05-15T12:03:34.750 回答