Чтение онлайн

на главную - закладки

Жанры

Восстановление данных. Практическое руководство
Шрифт:
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
2
N
Если
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 без завершающего нуля

Списки отрезков

Тела нерезидентных атрибутов хранятся на диске в одной или нескольких кластерных цепочках, называемых отрезками (runs). Отрезком называется последовательность смежных кластеров, характеризующаяся номером начального кластера и длиной. Совокупность отрезков называется списком (run-list или data run).

Внутренний формат представления списков не то, чтобы сложен, но простым его тоже на назовешь. Для экономии места длина отрезка и номер начального кластера хранятся в полях переменной длины. Если размер отрезка умещается в байт (т.е. его значение не превышает 255), то он займет один байт. По аналогии, если размер отрезка требует для своего представления двойного слова, то он займет двойное слово.

Сами же поля размеров хранятся в 4-битных ячейках, называемых нибблами (nibble) или полубайтами. Шестнадцатеричная система счисления позволяет легко переводить байты в нибблы и наоборот. Младший ниббл равен (

X & 15
), а старший — (
X / 16
). Иначе говоря, младший ниббл соответствует младшему шестнадцатеричному разряду байта, а старший — старшему. Например,
69h
состоит из двух нибблов, причем младший равен
9h
, а старший —
6h
.

Список отрезков представляет собой массив структур, каждая из которых описывает характеристики "своего" отрезка. Структура элемента списка отрезков показана в табл. 6.10. В конце списка находится завершающий ноль. Первый байт структуры состоит из двух нибблов: младший задает длину поля начального кластера отрезка (условно обозначаемого буквой

F
), а старший — количество кластеров в отрезке (
L
). Затем идет поле длины отрезка. В зависимости от значения
L
оно может занимать от одного до восьми байт (поля большей длины недопустимы). Первый байт поля стартового кластера файла расположен по смещению
1+L
байт от начала структуры (что соответствует
2+2*L
нибблам). Кстати говоря, в документации Linux-NTFS Project (версия 0.4) поля размеров начального кластера и количества кластеров в отрезке перепутаны местами.

Поделиться:
Популярные книги

Новобрачная

Гарвуд Джулия
1. Невеста
Любовные романы:
исторические любовные романы
9.09
рейтинг книги
Новобрачная

Аномальный наследник. Том 1 и Том 2

Тарс Элиан
1. Аномальный наследник
Фантастика:
боевая фантастика
альтернативная история
8.50
рейтинг книги
Аномальный наследник. Том 1 и Том 2

И вспыхнет пламя

Коллинз Сьюзен
2. Голодные игры
Фантастика:
социально-философская фантастика
боевая фантастика
9.44
рейтинг книги
И вспыхнет пламя

Барону наплевать на правила

Ренгач Евгений
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Барону наплевать на правила

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Возвышение Меркурия. Книга 5

Кронос Александр
5. Меркурий
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 5

Ученичество. Книга 1

Понарошку Евгений
1. Государственный маг
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ученичество. Книга 1

Купец VI ранга

Вяч Павел
6. Купец
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Купец VI ранга

Корсар

Русич Антон
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
6.29
рейтинг книги
Корсар

Неверный

Тоцка Тала
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Неверный

Девятый

Каменистый Артем
1. Девятый
Фантастика:
боевая фантастика
попаданцы
9.15
рейтинг книги
Девятый

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

Полковник Империи

Ланцов Михаил Алексеевич
3. Безумный Макс
Фантастика:
альтернативная история
6.58
рейтинг книги
Полковник Империи

Аргумент барона Бронина 2

Ковальчук Олег Валентинович
2. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 2