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

Формат таблицы fat

Остановимся подробнее на формате таблицы FAT.

Таблица FAT может иметь 12-, 16- или 32-разрядный формат, при этом файловая система будет обозначаться как FAT-12, FAT-16 и FAT-32, а в таблице для хранения информации об одном кластере диска используется 12 , 16 или 32 бит, соответственно.

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

Если размер диска слишком большой, для представления всех кластеров двенадцати разрядов будет недостаточно. В этом случае используется 16- или 32- разрядный формат FAT. При этом операционная система может работать с диском, который имеет размер более 32 Мбайт. Поэтому для жестких дисков всегда используется 16- или 32-разрядный формат таблицы FAT.

Как узнать формат FAT?

Формат FAT можно определить, анализируя содержимое поля кода раздела соответствующего элемента таблицы разделов. Это поле расположено в главной загрузочной записи MBR. Если оно содержит значение 1, используется 12-разрядный формат, если 4, то 16-разрядный, а если 0xB или 0xC - 32-разрядный.

Первый элемент таблицы FAT имеет особый формат.

Самый первый байт таблицы FAT называется "Описатель среды" (Media Descriptor). Он имеет такое же значение, как и байт-описатель среды, загрузочного сектора логического диска. Следующие 5 байт для 12-разрядного формата или 7 байт для 16-разрядного формата всегда содержат значение 0xFF.

Вся остальная часть таблицы FAT состоит из 12-, 16- или 32-разрядных ячеек. Каждая ячейка соответствует одному кластеру диска. Эти ячейки для разных форматов таблицы FAT могут содержать следующие значения:

FAT12

FAT16

FAT32

Описание

0x000

0x0000

0x00000000

Свободный кластер

0xFF0-0xFF6

0xFFF0-0xFFF6

0xFFFFFFF0-0xFFFFFFF6

Зарезервированный кластер

0xFF7

0xFFF7

0xFFFFFFF7

Плохой кластер

0xFF8-0xFFF

0xFFF8-0xFFFF

0xFFFFFFF8-0xFFFFFFFF

Последний кластер в списке

0x002-0xFEF

0x0002-0xFFEF

0x00000002-0x0000FFEF

Номер следующего кластера в списке

Просмотр таблицы fat

Для просмотра таблицы размещения файлов FAT мы воспользуемся программой DISKEDIT. Из меню Object выберите строку Drive и укажите интересующий Вас диск.

Затем из меню Object выберите одну из двух строк - 1st FAT или 2nd FAT. На экране появится, соответственно, содержимое первой или второй копии таблицы FAT в отформатированном виде (рис. 7).

Рис. 7. Просмотр первой копии таблицы размещения FAT в отформатированном виде

Вы также можете найти первую или вторую копию таблицы FAT, зная физический адрес загрузочной записи логического диска. Напомним, что загрузочная запись располагается в самом первом секторе дискеты. Расположение загрузочной записи для логических дисков, созданных в разделах жесткого диска, можно определить из таблицы разделов (для логического диска C:) или таблицы логических дисков (для логических дисков, созданных в расширенном разделе).

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

Поясним это на примере.

Пусть, например, у нас есть дискета с девятью секторами на дорожке. Сектор с логическим номером, равным 1, расположен на нулевой дорожке и для обращения к нему используется нулевая головка. Это самый первый сектор на дорожке, он имеет номер 1. Следующий сектор на нулевой дорожке имеет логический номер 2, последний сектор на нулевой дорожке имеет логический номер 9. Сектор с логическим номером 10 расположен также на нулевой дорожке. Это тоже самый первый сектор на дорожке, но теперь для доступа к нему используется головка с номером 1. И так далее, по мере увеличения логического номера сектора изменяются номера головок и дорожек.

Согласно такой нумерации, сектор с последовательным номером 0 - это загрузочный сектор. Для того чтобы просмотреть содержимое загрузочного сектора при помощи программы DISKEDIT, Вы можете выбрать из меню Object строку Sector и в появившейся диалоговой панели указать номер сектора, равный нулю.

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

С помощью меню View Вы можете просмотреть содержимое таблицы FAT в виде дампа.

Визуально таблица размещения файлов должна содержать в основном монотонно изменяющиеся последовательности номеров кластеров, нулевые значения, соответствующие свободным кластерам, а также значение 0xFFFF (0xFFF для FAT-12 или 0xFFFFFFFF для FAT-32), которое является признаком конца цепочки кластеров.

Вслед за первой копией таблицы FAT должна находиться вторая копия FAT.

Размер таблицы FAT Вы можете определить, зная содержимое поля блока параметров BIOS BPB со смещением 0xB (количество секторов, занимаемых одной копией FAT).

В результате сбоя или вирусной атаки таблица FAT может быть либо полностью разрушена, либо изменена (например, зашифрована или расписана нулями). Если цепочка кластеров для нужного Вам файла разрушена частично или полностью, восстановление такого файла может стать непростой задачей.

Некоторые вирусы пользуются тем фактом, что конец цепочки кластеров может отмечаться любым значением в указанных выше диапазонах (например, от 0xFFF8 до 0xFFFF для 16-разрядной таблицы FAT), в то время как операционная система использует значения 0FFFFh или 0FFFh.

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

Хотя вторая копия таблицы FAT создается как резервная, для облегчения процедуры восстановления в случае разрушения первой копии, не стоит особенно надеяться на то, что в случае вирусной атаки Вы сможете просто скопировать вторую копию FAT на место первой. Вторая копия FAT также может оказаться разрушенной или зашифрованной, причем иным способом, нежели первая.

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