Крис Касперски - Восстановление данных. Практическое руководство
Типы атрибутов
NTFS поддерживает большее количество предопределенных типов атрибутов, перечисленных в табл. 6.6. Тип атрибута определяет его назначение и формат представления тела. Полное описание всех атрибутов заняло бы не одну главу, а целую книгу, поэтому здесь приводятся лишь наиболее "ходовые" из них, а за информацией об остальных обращайтесь к документации Linux-NTFS Project.
Таблица 6.6. Основные типы атрибутов
Значение ОС Условное обозначение Описание 010h Любая $STANDARD_INFORMATION Стандартная информация о файле (время, права доступа) 020h Любая $ATTRIBUTE_LIST Список атрибутов 030h Любая $FILE_NAME Полное имя файла 040h Windows NT $VOLUME_VERSION Версия тома 040h Windows 2000 $OBJECT_ID Глобально уникальный идентификатор (GUID) и прочие ID 050h Любая $SECURITY_DESCRIPTOR Дескриптор безопасности и списки прав доступа (ACL) 060h Любая $VOLUME_NAME Имя тома 070h Любая $VOLUME_INFORMATION Информация о томе 080h Любая $DATA Основные данные файла 090h Любая $INDEX_ROOT Корень индексов 0A0h Любая $INDEX_ALLOCATION Ветви (sub-nodes) индекса 0B0h Любая $BITMAP Карта свободного пространства 0C0h Windows NT $SYMBOLIC_LINK Символическая ссылка 0C0h Windows 2000 $REPARSE_POINT Для сторонних производителей 0D0h Любая $EA_INFORMATION Расширенные атрибуты для HPFS 0E0h Любая $EA Расширенные атрибуты для HPFS 0F0h Windows NT $PROPERTY_SET Устарело и ныне не используется 100h Windows 2000 $LOGGED_UTILITY_STREAM Используется шифрующей файловой системой (EFS) $STANDARD_INFORMATIONАтрибут стандартной информации описывает время создания/изменения/последнего доступа к файлу и права доступа, а также некоторую другую вспомогательную информацию (например, квоты). Структура атрибута стандартной информации кратко описана в табл. 6.7.
Таблица 6.7. Структура атрибута $STANDARD_INFORMATION
Смещение Размер ОС Описание - - Любая Стандартный атрибутный заголовок (standard attribute header) 00h 8 Любая C — время создания (creation) файла 08h 8 Любая A — время изменения (altered) файла 10h 8 Любая M — время изменения файловой записи (MFT changed) 18h 8 Любая R — время последнего чтения (read) файла 20h 4 Любая Права доступа MS-DOS (MS-DOS file permissions) Значение Описание 0001h Только на чтение (read-only) 0002h Скрытый (hidden) 0004h Системный (system) 0020h Архивный (archive) 0040h Устройство (device) 0080h Обычный (normal) 0100h Временный (temporary) 0200h Разреженный (sparse) файл 0400h Точка передачи (reparse point) 0800h Сжатый (compressed) 1000h Оффлайновый (offline) 2000h Неиндексируемый (not content indexed) 4000h Зашифрованный (encrypted) 24h 4 Любая Старшее двойное слово номера версии (maximum number of versions) 28h 4 Любая Младшее двойное слово номера версии (version number) 2Ch 4 Любая Идентификатор класса (class ID) 30h 4 Windows 2000 Идентификатор владельца (owner ID) 34h 4 Windows 2000 Идентификатор безопасности (security ID) 38h 8 Windows 2000 Количество квотируемых байт (quota charged) 40h 8 Windows 2000 Номер последней последовательности обновления (update sequence number USN) $ATTRIBUTE_LISTАтрибут списка атрибутов (прямо каламбур) используется в тех случаях, когда все атрибуты файла не умещаются в базовой файловой записи, и файловая система вынуждена располагать их в расширенных файловых записях. Индексы расширенных файловых записей содержатся в атрибуте списка атрибутов, помещаемом в базовую файловую запись.
При каких обстоятельствах атрибуты не умещаются в одной файловой записи? Это может произойти в следующих случаях:
□ файл содержит много альтернативных имен или жестких ссылок;
□ файл сильно фрагментирован;