Информация MFT для альтернативных имен потоков данных

Я работал над получением информации о файле из MFT. Я вижу, что запись MFT имеет информацию относительно стандартной информации, имен файлов, данных и некоторых других атрибутов. Я попытался проанализировать запись MFT, чтобы получить все детали, которые она содержит. Я могу получить имя файла, данные (включая данные для альтернативных потоков) для всех файлов, но мне не удалось получить имена файлов для названных альтернативных потоков данных. Для тестирования я создал файл с двумя именованными альтернативными потоками, содержащими данные. Когда я проанализировал запись MFT, соответствующую файлу, я не смог определить альтернативные имена потоков. Означает ли это, что имена альтернативных потоков не хранятся в MFT? Тогда как некоторые утилиты, такие как stream.exe, идентифицируют имена альтернативных потоков?

1 ответ

Если вы анализируете атрибуты самостоятельно, вы можете найти смещение к имени атрибутов в их общем заголовке. E сть WORD значение в заголовке по смещению 0x0A атрибута, если я не ошибаюсь (я нашел это здесь). Смещение указывает на имя атрибута. Размер заголовка атрибута + длина имени атрибута + длина данных (данные запускаются, если они не являются резидентными, в противном случае - фактические данные) должны соответствовать длине атрибута, хранящейся в поле общего заголовка (смещение 0x04).

Если вы используете Windows API, вы можете использовать функцию FindFirstStreamW для файла, чтобы получить его потоки. Обычно он возвращает структуру WIN32_FIND_STREAM_DATA, которая содержит имя потока.

Другие вопросы по тегам