索引记录之间的最后一个索引条目,但资源管理器仍然能够显示所有文件

时间:2018-06-07 06:30:13

标签: hex reverse-engineering ntfs ntfs-mft

我正在为NTFS文件系统编写解析器。我对INDX记录有疑问。我已经完成了stackoverflow问题" NTFS硬盘上的$ I30的无效INDX条目"以及其中提供的链接。请参考下图。

INDXRecord

在解析INDX记录时,遇到字节序列时 00 00 00 00 00 00 00 00 10 00 00 00 02 00 00 00 该文档表明它应被视为索引条目列表的最后一个条目。但是,正如您所看到的,此后有更多条目,并且Windows资源管理器显示所有条目。由于后续条目的结构与INDX条目记录的规定结构不匹配,因此我无法在最后一个条目之后继续解析;如下所示。如果我在这里遗漏任何东西以及如何解决这个问题,请提出建议。

IndexEntry structure

1 个答案:

答案 0 :(得分:0)

偏移量0x960中的字节均不相关;它们是从B树的先前状态中遗留下来的,NTFS不会浪费时间将其归零。所有文件仍显示在目录列表中的事实只是意味着它们驻留在不同的索引块中,而不是该索引块中。

显然,从偏移量0x960开始的字节不能是索引条目。 0x01d3f97e8238ad31不是有效的文件引用;文件名在条目中不偏移0x52;等

您看到的条目片段曾经在那里。