<<
>>

Категория файловой системы

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

Общие концепции

В файловой системе FAT данные, относящиеся к категории файловой системы, хранятся в структуре данных загрузочного сектора.

Загрузочный сектор располагается в первом секторе тома и является частью зарезервированной области файловой системы. Microsoft называет некоторые данные первого сектора блоком параметров BIOS, или ВРВ (BIOS Parameter Block), но для простоты я буду использовать термин загрузочный сектор.

Загрузочный сектор содержит данные, принадлежащие ко всем категориям модели, поэтому их описание откладывается до рассмотрения соответствующих категорий. Не существует поля, которое идентифицировало бы версию файловой системы (FAT 12, FAT16 или FAT32). Тип определяется только вычислениями с данными загрузочного сектора. Я приведу формулу в конце главы, потому что в ней задействованы некоторые концепции, которые мы еще не рассматривали.

В FAT32 загрузочный сектор содержит дополнительные данные, в том числе адрес резервной копии загрузочного сектора, а также основной и дополнительный номера версии. Резервная копия загрузочного сектора используется при повреждении версии в секторе 0; согласно документации Microsoft она всегда должна находиться в секторе 6, чтобы при повреждении стандартного экземпляра программы могли автоматически найти ее. Структура данных загрузочного сектора рассматривается в главе 10.

Файловые системы FAT32 также содержат структуру данных FSINFO с информацией о местонахождении следующего доступного кластера и общем количестве свободных кластеров. Точность этих данных не гарантирована; они всего лишь служат рекомендацией для операционной системы. Их структуры данных описаны в следующей главе.

Необходимые данные загрузочного сектора

Одной из первых задач при анализе файловой системы FAT должна стать идентификация трех физических областей. Зарезервированная область начинается в секторе 0 файловой системы, а ее размер указан в загрузочном секторе. В FAT12/16 она обычно занимает всего 1 сектор, а в FAT32 для нее резервируются несколько секторов.

Область FAT содержит одну или несколько структур FAT и начинается в секторе, следующем за зарезервированной областью. Ее размер вычисляется умножением количества структур FAT на размер одной структуры; оба значения хранятся в загрузочном секторе.

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

Структура области данных в FAT12/16 и FAT32 несколько различается. В FAT 12/16 начало области данных зарезервировано для корневого каталога, а в FAT32 корневой каталог может находиться в произвольном месте области данных (хотя обычно он все же находится в начале). Динамический размер и местонахождение корневого каталога позволяют FAT32 адаптироваться к появлению

поврежденных секторов в начале области данных и увеличивать размер каталога до необходимого размера. Корневой каталог FAT 12/16 обладает фиксированным размером, заданным в загрузочном секторе. Начальный адрес корневого каталога FAT32 хранится в загрузочном секторе, а его размер определяется по структуре FAT. На рис.9.3 показаны разные поля загрузочного сектора, используемые для определения структуры файловых систем FAT12/16 и FAT32.

Вспомогательные данные загрузочного сектора

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

Одно из таких значений — строка из 8 символов, называемая меткой OEM. В ней может храниться обозначение системы, создавшей экземпляр FAT, но это значение не является обязательным. Например, система Windows 95 заносит в это поле строку «MSWIN4.0», Windows 98 — строку «MSWIN4.1», a Windows ХР и 2000 — «MSDOS5.0». Я выяснил, что команда Linux mkfs.msdos заполняет его строкой mkdosfs, некоторые флэш-диски USB записывают случайные данные, а некоторые карты памяти цифровых фотоаппаратов используют имена, напоминающие модель камеры. Значение можно легко изменить в шестнадцатеричном редакторе, но оно поможет определить, на каком типе компьютера была отформатирована дискета. Некоторые версии Windows требуют, чтобы значение было обязательно задано.

Файловым системам FAT назначается 4-байтовый серийный номер тома, который в соответствии со спецификацией Microsoft определяется временем создания файловой системы с использованием текущего времени, хотя операционная система, создающая файловую систему, может задать любое значение. Тестирование показало, что разные версии Windows ведут себя по-разному. Так, система Windows 98 вела себя так, как сообщает Крейг Уилсон (Craig Wilson) [Wilson, 2003]: серийный номер представлял собой результат сложения полей даты и времени в определенном порядке. Формула приводится в разделе «Загрузочный сектор» главы 10. В Windows ХР этот алгоритм не использовался. Windows использует серийный номер тома при работе со съемными носителями и определяет факт замены диска.

Также в загрузочном секторе присутствует поле из 8 символов, содержащее строку «FAT12», «FAT16», «FAT32» или «FAT». Большинство систем, создающих экземпляры FAT, корректно заполняют эту строку, но это не обязательно. Существует только один способ определения фактического типа системы — вычисление по формуле, к которой мы придем позже. Последним идентификационным маркером является 11-символьная метка тома, которую вводит пользователь при создании файловой системы.

Метка тома также хранится в корневом каталоге файловой системы. Я заметил, что при добавлении метки тома в ХР она записывается только в корневой каталог, но не в загрузочный сектор.

Загрузочный код

Загрузочный код в файловой системе FAT чередуется со структурами данных файловой системы [Microsoft, 2003е]. В этом FAT отличается от файловых систем UNIX, где используется полностью изолированный загрузочный код. Первые три байта загрузочного сектора содержат машинный код команды перехода, которая заставляет процессор обойти конфигурационные данные и передать управление основному загрузочному коду. Как будет видно из структуры данных в следующей главе, загрузочный сектор занимает 512 байт, причем байты 62-509 в FAT12/16 и байты 90-509 в FAT32 не используются. Эти байты содержат загрузочный код, а в FAT32 дополнительный загрузочный код может находиться в секторах, следующих за загрузочным сектором.

Файловые системы FAT обычно содержат загрузочный код даже в том случае, если они не являются загрузочными — в этом случае код выводит сообщение о том, что для загрузки системы следует вставить другой диск. Загрузочный код FAT получает управление от загрузочного кода MBR, находит и загружает нужные файлы операционной системы.

Пример образа

В этом разделе я воспользуюсь данными из тестового образа FAT32. В пакет TSK (The Sleuth Toolkit) входит программа fsstat, которая выводит большую часть данных из категории файловой системы. Пример результата, выданного программой fsstat для тестового образа: fsstat -f fat fat-4.dd FILE SYSTEM INFORMATION

File System Type: FAT OEM Name: MSD0S5.C)

Volume ID: 0x4cl94603

Volume Label (Boot Sector): NO NAME Volume Label (Root Directory): FAT DISK File System Type Label: FAT32

Backup Boot Sector Location: 6 FS Info Sector Location: 1 Next Free Sector (FS Info): 1778 Free Sector Count (FS Info): 203836 Sectors before file system: 100800

File System Layout (in sectors)

Total Range: 0 - 205631 Reserved: 0 - 37 ** Boot Sector: 0

** FS Info Sector: 1 ** Backup Boot Sector: 6 FAT 0: 38 - 834 FAT 1: 835 - 1631 Data Area: 1632 - 205631

** Cluster Area: 1632 - 205631 *** Root Directory: 1632 - 1635

CONTENT-DATA INFORMATION

Sector Size: 512

Cluster Size: 1024

Total Cluster Range: 2 - 102001

[REMOVED]

Из листинга видно, что первой копии FAT предшествуют 38 зарезервированных секторов. В зарезервированной области находится резервная копия загрузочного сектора и структура данных FSINFO. В файловой системе находится две структуры FAT, расположенные в секторах 38-834 и 835-1631. Область данных начинается в секторе 1632 и состоит из 1024-байтовых кластеров.

<< | >>
Источник: Кэрриэ Б.. Криминалистический анализ файловых систем. 2007

Еще по теме Категория файловой системы:

  1. Категория данных файловой системы
  2. Категория данных файловой системы
  3. Категория данных файловой системы
  4. Категория имен файлов
  5. Категория данных имен файлов
  6. Категория данных имен файлов
  7. Категория имен файлов
  8. Конкретные файловые системы
  9. Что такое файловая система?
  10. Файлы метаданных файловой системы
  11. Анализ файловых систем
  12. ЧАСТЬ III Анализ файловых систем
  13. Кэрриэ Б.. Криминалистический анализ файловых систем, 2007
  14. 4. Система основных категорий и законов в социологии
  15. 1.2.8. Культура задает картину мира с помощью системы категорий, норм и ценностей, а также определяет ритм жизнедеятельности общества
  16. КАТЕГОРИИ ПРАКТИКИ И КАТЕГОРИИ АНАЛИЗА
  17. Шифрование файлов
  18. Файловый хостинг
  19. Стандартные атрибуты файлов