Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Восстановление информации.doc
Скачиваний:
130
Добавлен:
10.12.2013
Размер:
893.95 Кб
Скачать

Формат каталогов

В случае FAT-12 и FAT-16 непосредственно после второй копии таблицы размещения файлов следует корневой каталог. Расположение корневого каталога для FAT-32 указано в блоке BPB (слово со смещением 0x21).

Размер корневого каталога в секторах Вы можете определить из блока параметров BIOS BPB. Поле со смещением 6 содержит максимальное количество дескрипторов файлов в корневом каталоге диска (этому полю соответствует строка Root directory entries при форматном просмотре содержимого загрузочного сектора программой DISKEDIT).

Размер одного дескриптора составляет 32 байта, поэтому, умножив максимальное количество дескрипторов на это число, мы получим размер корневого каталога в байтах. Зная размер сектора (512 байт), нетрудно определить количество секторов, занимаемых корневым каталогом.

Теперь поговорим о дескрипторах файлов.

Любой каталог (и корневой в том числе) содержит 32-байтовые элементы - дескрипторы, описывающие файлы и другие каталоги. Приведем формат дескриптора, применяющийся в операционной системе MS-DOS:

Смещение, байт

Размер, байт

Описание

0x00

8

Имя файла или каталога, выровненное на левую границу и дополненное пробелами

0x08

3

Расширение имени файла, выровненное на левую границу и дополненное пробелами

0x0B

1

Байт атрибутов файла

0x0C

10

Зарезервировано

0x16

2

Время создания файла или время его последней модификации

0x18

2

Дата создания файла или дата его последней модификации

0x1A

2

Номер первого кластера, распределенного файлу

0x1C

4

Размер файла в байтах

Обратите внимание на поле со смещением 0x1A. Это номер первого кластера, распределенного файлу или каталогу (если дескриптор описывает каталог более низкого уровня). Пользуясь этим значением, Вы сможете проследить по таблице размещения файлов FAT всю цепочку кластеров, распределенных данному файлу или каталогу. Таким образом, у нас имеется способ отыскать начало цепочки кластеров для любого файла - нужно лишь найти соответствующий дескриптор.

В любом каталоге, кроме корневого, два первых дескриптора имеют специальное назначение. Первый дескриптор содержит в поле имени строку:

". "

Этот дескриптор указывает на содержащий его каталог. То есть каталог имеет ссылку сам на себя. Второй специальный дескриптор содержит в поле имени строку:

".. "

Этот дескриптор указывает на каталог более высокого уровня.

Если в поле номера первого занимаемого кластера для дескриптора с именем ".. " находится нулевое значение, это означает, что данный каталог содержится в корневом каталоге.

В древовидной структуре каталогов имеются ссылки, адресующие каталоги как в прямом, так и в обратном направлении. Эти ссылки можно использовать для проверки сохранности структуры каталогов файловой системы.

Байт атрибутов является принадлежностью каждого файла. Разряды байта атрибутов комбинируются при помощи логической операции ИЛИ. Они имеют следующие значения:

Бит

Описание

0

Файл предназначен только для чтения. В этот файл нельзя писать и его нельзя стирать

1

Скрытый файл. Этот файл не будет появляться в списке файлов, отображаемых командой DIR

2

Системный файл. Этот бит обычно установлен для файлов, являющихся составной частью операционной системы

3

Данный дескриптор описывает метку диска. Для этого дескриптора поле имени файла и поле расширения имени файла должны рассматриваться как одно поле длиной 11 байт. Это поле содержит метку диска

4

Дескриптор описывает файл, являющийся подкаталогом данного каталога

5

Флаг архивации. Если этот разряд установлен в 1, то данный файл не был выгружен утилитой архивации

6-7

Зарезервированы

Как правило, файлы имеют следующие атрибуты:

Атрибут

Описание

0x00

Обычные файлы (тексты программ, загрузочные модули, пакетные файлы)

0x07

Только читаемые, скрытые, системные файлы. Такая комбинация битов байта атрибутов используется для файлов операционной системы MS-DOS, таких как IO.SYS, MSDOS.SYS

0x08

Метка тома. Дескриптор метки тома может находиться только в корневом каталоге логического диска

0x10

Дескриптор, описывающий каталог

0x20

Обычный файл, который не был выгружен программами BACKUP или XCOPY

При удалении файла первый байт его имени заменяется байтом 0xE5 (символ "х"). После этого все кластеры, распределенные удаленному файлу, отмечаются в таблице FAT как свободные.

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

Теперь о полях времени и даты.

Старшие пять разрядов поля времени содержат значение часа модификации файла, шесть разрядов с номерами 5-10 хранят значение минут модификации файла, и, наконец, в младших 5 разрядах находится значение секунд, деленное на 2. Для того чтобы время обновления файла уместилось в шестнадцати разрядах, пришлось пойти на снижение точности времени до двух секунд. В подавляющем большинстве случаев такое снижение точности не играет никакой роли.

Формат даты обновления файла напоминает формат времени. Разряды 9-15 отведены для хранения года, 5-8 - для хранения месяца и 0-4 - для хранения дня недели. Для того чтобы получить значение года обновления файла, необходимо прибавить к величине, хранимой в старших семи битах, значение 1980.

Некоторые вирусы используют поля времени и даты для отметки зараженных файлов. Такая отметка нужна для того, чтобы избежать повторного заражения. Однако этот примитивный способ используется только простейшими вирусами.

Поле длины в дескрипторе содержит точную длину файла в байтах. Для каталогов в поле длины записано нулевое значение.

Когда вирус заражает файл, его длина, как правило, увеличивается. Тем не менее, стелс-вирусы, скрывающие свое присутствие в системе, эффективно маскируют такое увеличение. Поэтому его можно заметить только при загрузке операционной системы с "чистой" дискеты, свободной от вирусного заражения.

Соседние файлы в предмете Защита информации