Теоретически итерация по MFT - PullRequest
0 голосов
/ 08 февраля 2020

В настоящее время я пытаюсь перебрать MFT моего NTFS-диска, чтобы найти некоторые файлы с указанным расширением c за очень короткое время.

Я руководствуюсь: Взгляд программистов на извлечение необработанных данных файловой системы .

Теперь моя проблема заключается в понимании того, как я могу перебирать каталоги.

Позвольте мне объяснить, где я застрял:

Я знаю, что каждая запись имеет размер 1024 байта и начинается с FILE, некоторые из них могут быть каталогами.

Каталоги имеют специальный атрибут $INDEX_ROOT, который можно использовать для поиска там INDX record, который составляет 4096 байт и начинается с INDX.

Из INDX record вы можете легко найти следующий по размеру предыдущей записи et c ... (который я не не понимаю, какой смысл проходить через записи INDX, если я не могу проверить файлы в папках, связанных с этими записями?).

Моя проблема заключается в понимании того, как я могу перечислить файлы, которые директория держит?

Каким образом доступ к INDX record папки (например, из Root) позволяет мне получить доступ к ее записям в файле (я ожидаю найти эти 1024-байтовые записи, начинающиеся с FILE).

Какова точная связь между записями INDX (4096 байт) и записями FILE (1024 байт)?

Я немного знаю, как работают b + деревья, но я действительно не вижу, что делает FILE, INDX записи представляют в нем (узлы, ключи ...).

...