Загрузочный сектор находится в первом секторе файловой системы FAT и содержит основную часть данных, относящихся к категории файловой системы. FAT 12/16 и FA32 содержат разные версии загрузочного сектора, хотя начальные 36 байт в них совпадают. Структура данных первых 36 байтов приведена в табл. 10.1, а структуры остальных байтов - в табл. 10.2 и 10.3.

Таблица 10-1- Структура данных первых 36 байтов загрузочного сектора FAT

Диапазон

Описание

Необходимость

0-2

Ассемблерная команда перехода к загрузочному коду

Нет (кроме загрузочных файловых систем)

3-Ю

Имя OEM в кодировке ASCII

Нет

11-12

Количество байтов в секторе. Допустимые значения - 512, 1024, 2048 и 4096

Да

13-13

Количество секторов в кластере (блоке данных). Допустимые значения задаются степенями 2, но размер кластера не должен превышать 32 Кбайт

Да

14-15

Размер зарезервированной области в секторах

Да

16-16

Количество копий FAT. Обычно в системе хранятся две копии, но, по документации Microsoft, для устройств малой емкости допускается хранение только одной копии

Да

17-18

Максимальное количество файлов в корневом каталоге для FAT12 и FAT16. В FAT32 поле равно 0, а в FAT16 оно обычно равно 512

Да

Таблица 10-1 (продолжение)

Диапазон

Описание

Необходимость

19-20

16-разрядное количество секторов в файловой системе. Если количество секторов не может быть представлено 2-байтовой величиной, позднее в структуре данных следует альтернативное 4-байтовое поле (а 2-байтовое поле должно быть равно нулю)

Да

21-21

Тип носителя. Согласно документации Microsoft, для стационарных дисков используется значение 0xf8, а для съемных- 0xf0

Нет

22-23

16-разрядный размер (в секторах) каждой копии FAT в FAT12 и FAT16. В FAT32 поле равно 0

Да

24-25

Количество секторов в дорожке

Нет

26-27

Количество головок

Нет

28-31

Количество секторов перед началом раздела1

Нет

32-35

32-разрядное количество секторов в файловой системе. Либо это поле, либо 16-разрядное поле (19-20) должно быть равно 0

Да

1 Тестирование показало, что в файловых системах, хранящихся в расширенных разделах, Windows задает это значение по отношению к началу расширенного раздела, а не к началу диска.

Команда в первом поле загрузочного сектора (байты 0-2) сообщает компьютеру, где находится код, необходимый для загрузки операционной системы. Если файловая система не используется для загрузки компьютера, это значение игнорируется. DOS и Windows требуют, чтобы значение поля задавалось и для файловых систем, не являющихся загрузочными, а в других ОС (например, Linux) такое требование отсутствует.

Тип носителя определяет, находится файловая система на стационарном или съемном носителе, но в Microsoft Windows игнорирует это поле и использует вторую копию типа носителя, находящуюся в таблице размещения файлов [Microsoft, 2001]. Смысл остальных полей был описан в главе 9.

Начиная с байта 36, между структурами загрузочного сектора FAT12/FAT16 и FAT32 начинаются расхождения. В них совпадает только сигнатура 0x55 (байт 510) и ОхАА (байт 511). Обратите внимание: эта же сигнатура используется в первом секторе таблицы разделов DOS (мы еще встретимся с ней в первом секторе NTFS). Структура остальных байтов загрузочного сектора FAT12 и FAT16 приведена в табл. 10.2.

Таблица 10.2. Структура данных оставшейся части загрузочного сектора в РАТ12/16

Диапазон

Описание

Необходимость

0-35

См. табл. 10.1

Да

36-36

Номер диска ВЮБ ІІМТ13Н

Нет

37-37

Не используется

Нет

38-38

Расширенная сигнатура, которая показывает, действительны ли следующие три значения. Сигнатура равна 0x29

Нет

Диапазон

Описание

Необходимость

39-42

Серийный номер тома; в некоторых версиях Windows вычисляется на основании даты и времени создания

Нет

43-53

Метка тома в кодировке ASCII. Выбирается пользователем при создании файловой системы

Нет

54-61

Метка типа файловой системы в кодировке ASCII Стандартные значения - «FAT», «FAT12» и «FAT 16», но ни одно из них не является обязательным

Нет

62-509

Не используется

Нет

510-511

Сигнатура (0хАА55)

Нет

Структура остальных байтов загрузочного сектора РАТ32 приведена в табл. 10.3. Таблица 10.3. Структура данных оставшейся части загрузочного сектора в РАТ32

Диапазон

Описание

Необходи мость

0-35

См. табл. 10.1

Да

36-39

32-разрядный размер одной копии FAT (в секторах)

Да

40-41

Режим обновления нескольких структур FAT. Если бит 7 равен 1, активна только одна копия FAT, индекс которой определяется разрядами 0-3. В противном случае все структуры FAT являются зеркальными копиями друг друга

Да

42-43

Основной и дополнительный номер версии

Да

44-47

Кластер, в котором находится корневой каталог

Да

48-49

Сектор, в котором находится структура FSINFO

Нет

50-51

Сектор, в котором находится резервная копия загрузочного сектора (по умолчанию 6)

Нет

52-63

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

Нет

64-64

Номер диска BIOS INT13H

Нет

65-65

Не используется

Нет

66-66

Расширенная сигнатура, которая показывает, действительны ли следующие три значения.

Сигнатура равна 0x29

Нет

67-70

Серийный номер тома; в некоторых версиях Windows вычисляется на основании даты и времени создания

Нет

71-81

Метка тома в кодировке ASCII. Выбирается пользователем при создании файловой системы

Нет

82-89

Метка типа файловой системы в кодировке ASCII. Стандартное значение - «FAT32», но оно не является обязательным

Нет

90-509

Не используется

Нет

510-511

Сигнатура (0хАА55)

Нет

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

Содержимое диапазона 62-509 в FAT12/16 и 90-509 в FAT32 не имеет определенного предназначения. Обычно эти байты используются для хранения загрузочного кода и сообщений об ошибках. Вот как выглядит шестнадцатеричный дамп первого сектора файловой системы FAT32 в системе Windows ХР:

# dcat -f fat-4.dd 0 xxd

0000000: eb58 904d 5344 4f53 352e 3000 0202 2600 .X.MSDOS5.0..

0000016: 0200 0000 00f8 0000 3f00 4000 c089 0100 ........?.@.....

0000032: 4023 0300 ld03 0000 0000 0000 0200 0000 @#..............

0000048: 0100 0600 0000 0000 0000 0000 0200 0000 ................

0000064: 8000 2903 4619 4c4e 4f20 4e41 4d45 2020 ..).F.LN0 NAME

0000080: 2020 4641 5433 3220 2020 33c9 8edl bcf4 FAT32 3.....

0000096: 7b8e cl8e d9bd 007c 884e 028a 5640 b408 {.......N..V@..

0000112: cdl3 7305 b9ff ff8a fl66 0fb6 c640 660f ..s......f...@f.

0000128: b6dl 80e2 3ff7 e286 cdcO ed06 4166 0fb7 ....?.......Af..

[...]

0000416: 0000 0000 0000 0000 0000 0000 OdOa 5265 ..............Re

0000432: 6d6f 7665 2064 6973 6b73 206f 7220 6f74 move disks or ot

0000448: 6865 7220 6d65 6469 612e ffOd 0a44 6973 her media....Dis

0000464: 6b20 6572 726f 72ff OdOa 5072 6573 7320 k error... Press

0000480: 616e 7920 6b65 7920 746f 2072 6573 7461 any key to resta

0000496: 7274 OdOa 0000 0000 OOac cdb8 0000 55aa ке............U.

В первой строке видна метка OEM «MSDOS5.0»; по всей вероятности, она была сгенерирована в Windows 2000 или ХР. В системе используется прямой порядок байтов, поэтому в числовых полях байты переставляются, а байты строковых данных следуют в обычном порядке. Из байтов 11-12 мы узнаем, что каждый сектор занимает 512 байт (0x0200), а байт 13 показывает, что размер каждого кластера в области данных составляет 2 сектора, то есть 1024 байта. Согласно байтам 14-15, зарезервированная область состоит из 38 (0x0026) секторов, поэтому мы знаем, что область FAT начинается в секторе 38, а согласно байту 16 в системе хранятся две копии FAT. Байты 19-20 содержат 16-разрядный размер файловой системы; в данном примере он равен 0. Это говорит о том, что размер определяется 32-раз-рядным полем в байтах 32-35. Из этого поля мы узнаем, что размер файловой системы составляет 205 632 (0x00032340) сектора. Байты 28-31 показывают, что перед началом файловой системы располагаются 100 800 (0x0001 89с0) секторов; возможно, они были выделены в небольшой раздел. Например, это может быть система с альтернативной загрузкой или раздел данных спящего режима для портативного компьютера. Для получения дополнительной информации следует проанализировать таблицу разделов.

Образ относится к системе FAT32, поэтому после 36-го байта следует применять соответствующую структуру данных. Байты 36-39 показывают, что размер каждой копии FAT составляет 797 (0x0000 031d) секторов, а поскольку мы знаем, что в системе хранятся две копии FAT, общий размер области FAT составит 1594 сектора. Байты 48-49 показывают, что информация FSINFO хранится в секторе 1, а байты 50-51 - что резервная копия загрузочного сектора находится в секторе 6.

Серийный номер тома находится в байтах 67-70, его значение равно 0х4с194603. Метка тома в байтах 71-81 представляет собой строку «NO NAME» (с четырьмя пробелами). Позднее мы увидим, что настоящая метка хранится в другом месте файловой системы. Метка типа хранится в байтах 82-89, в данной системе это строка «FAT32» (плюс три пробела). Байты 90-509 файловой систе мой не используются, но находящиеся в них данные используются при попытке загрузить компьютер из этой файловой системы. Байты 510 и 511 содержат сигнатуру 0хАА55. Результат запуска утилиты fsstat из пакета TSK для этого образа приводился в главе 9.

Как упоминалось в главе 9, некоторые версии Windows назначают серийный номер тома на основании даты и времени создания файловой системы. Эксперименты показали, что Windows 98 поступает именно так, но Windows ХР действует по другому алгоритму. В Windows 98 вычисления разбиваются на две половины: старшие и младшие 16 бит [Wilson, 2003]. Каждое поле даты, за исключением года, преобразуется в 1-байтовое шестнадцатеричное значение и помещается в соответствующую позицию формулы. Год представляется 2-байтовым шестнадцатеричным значением. Процедура показана на рис. 10.1. Старшие 16 бит образуются сложением часов, минут и года, а младшие 16 бит - месяцев, дней, секунд и десятых долей секунд. Тестовый образ файловой системы, который мы рассматривали, был создан в системе Windows ХР, и в нем эти вычисления не используются.

Рис. 10.1. Процесс вычисления серийного номера тома по дате и времени создания

Структуры данных рат | Криминалистический анализ файловых систем | Структура рбІІмро


Криминалистический анализ файловых систем



Новости за месяц

  • Март
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс