Книга: Восстановление данных. Практическое руководство

Типы атрибутов

Типы атрибутов

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

Атрибут списка атрибутов (прямо каламбур) используется в тех случаях, когда все атрибуты файла не умещаются в базовой файловой записи, и файловая система вынуждена располагать их в расширенных файловых записях. Индексы расширенных файловых записей содержатся в атрибуте списка атрибутов, помещаемом в базовую файловую запись.

При каких обстоятельствах атрибуты не умещаются в одной файловой записи? Это может произойти в следующих случаях:

? файл содержит много альтернативных имен или жестких ссылок;

? файл сильно фрагментирован;

? файл содержит очень сложный дескриптор безопасности;

? файл имеет очень много потоков данных (т.е. атрибутов типа $DATA).

Структура атрибута списка атрибутов приведена в табл. 6.8.

Таблица 6.8. Структура атрибута $ATTRIBUTE_LIST

Смещение Размер Описание
- - Стандартный атрибутный заголовок (standard attribute header)
00h 4 Тип (type) атрибута (см. табл. 6.6)
04h 2 Длина записи (record length)
06h 1 Длина имени (name length), или ноль, если нет, условно — N
07h 1 Смещение имени (offset to name), или ноль если нет
08h 8 Начальный виртуальный кластер (starting VCN)
10h 8 Ссылка на базовую/расширенную файловую запись
18h 2 Идентификатор атрибута (attribute ID)
1Ah 2N Если N>0, то имя в формате UNICODE

$FILE_NAME

Атрибут полного имени файла хранит имя файла в соответствующем пространстве имен. Таких атрибутов у файла может быть и несколько (например, имя Win32 и имя MS-DOS). Здесь же хранятся и жесткие ссылки (hard link), если они есть.

Структура атрибута полного имени приведена в табл. 6.9.

Таблица 6.9. Структура атрибута $FILE_NAME

Смещение Размер Описание
- - Стандартный атрибутный заголовок (standard attribute header)
00h 8 Ссылка (file reference) на материнский каталог
08h 8 C — время создания (creation) файла
10h 8 A — время последнего изменения (altered) файла
18h 8 M — время последнего изменения файловой записи (MFT changed)
20h 8 R — время последнего чтения (read) файла
28h 8 Выделенный размер (allocated size) файла
30h 8 Реальный размер (real size) файла
38h 4 Флаг (см. табл. 6.7)
3Ch 4 Используется HPFS
40h 1 Длина имени в символах — L
41h 1 Пространство имен файла (filename namespace)
42h 2L Имя файла в формате UNICODE без завершающего нуля

Оглавление книги


Генерация: 0.670. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз