Я работал над извлечением информации о файлах из MFT. Я вижу, что в записи MFT есть информация о стандартной информации, именах файлов, данных и нескольких других атрибутах. Я попытался разобрать запись MFT, чтобы получить все детали, которые она содержит. Я могу получить имя файла, данные (включая данные для альтернативных потоков) для всех файлов, но я не смог получить имена файлов для указанных альтернативных потоков данных. Для тестирования я создал файл с двумя альтернативными потоками, содержащими данные. Когда я проанализировал запись MFT, соответствующую файлу, я не смог идентифицировать альтернативные имена потоков. Означает ли это, что альтернативные имена потоков не хранятся в MFT? Затем как некоторые утилиты, такие как stream.exe, идентифицируют альтернативные имена потоков?Сведения о MFT для альтернативных имен потоков данных
1
A
ответ
1
Если вы сами разбираете атрибуты, вы можете найти смещение по имени атрибутов в своем общем заголовке. В заголовке есть значение WORD
со смещением 0x0A
атрибута, если я не ошибаюсь (я нашел его here). Смещение указывает на имя атрибута. Размер атрибута заголовок + длиной атрибута имя + в длине данные (прогон данных, если не резидент, фактические данные, в противном случае) должны соответствовать длине атрибута, хранящейся в поле общего заголовка (смещение 0x04
).
Если вы используете Windows API, вы можете использовать функцию FindFirstStreamW в файле, чтобы получить его потоки. Он обычно возвращает структуру WIN32_FIND_STREAM_DATA, которая содержит имя потока.