Последняя запись индекса между записями индекса, но проводник все еще может показать все файлы - PullRequest
0 голосов
/ 07 июня 2018

Я пишу парсер для файловой системы NTFS.У меня есть вопрос относительно записи INDX.Я прошел через вопрос stackoverflow «Недопустимые записи INDX для $ I30 на жестком диске NTFS», а также ссылки, содержащиеся в нем.Пожалуйста, обратитесь к изображению ниже.

INDXRecord

При синтаксическом анализе записи INDX, когда мы встречаемся с последовательностью байтов 00 00 00 00 00 00 00 00 10 00 00 00 02 00 00 00 В документе указывается, что ее следует обработатькак последняя запись в списке записей индекса.Однако, как вы можете видеть, после этого появляется больше записей, и Windows Explorer отображает все записи.Я не могу продолжать анализ после последней записи, так как структура следующей записи не соответствует предписанной структуре записи записи INDX, как показано ниже.Просьба предложить, если я что-то здесь упускаю и как решить то же самое.

IndexEntry structure

1 Ответ

0 голосов
/ 08 августа 2018

Ни один из байтов из смещения 0x960 не является релевантным;они остались от предыдущего состояния B-дерева, и NTFS не тратит время на его обнуление.Тот факт, что все файлы по-прежнему отображаются в списке каталогов, просто означает, что они находятся в разных индексных блоках, а не в этом.

Очевидно, что байты, начинающиеся со смещения 0x960, не могут быть элементами индекса.0x01d3f97e8238ad31 не является допустимой ссылкой на файл;имя файла не смещено 0x52 в записи;и т.д.

Вы видите фрагменты записей, которые были там раньше.

...