Посмотрим, как устроена структура данных, называемая разметкой диска. Если этот материал вас не интересует, пропустите его и перейдите к примерам анализа образов дисков. Я начну с общего описания разметки диска BSD, а затем перейду к подробностям реализации FreeBSD и OpenBSD. В табл. 6.1 перечислены поля этой структуры данных. Учтите, что некоторые поля могут быть не задействованы в определении структуры диска, но при этом необходимы для выполнения других операций.

Таблица 6.1. Структура данных разметки диска BSD

Диапазон

Описание

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

байтов

0-3

Сигнатура (0x82564557)

Нет

4-5

Тип диска

Нет

6-7

Подтип диска

Нет

8-23

Имя типа диска

Нет

24-39

Имя идентификатора пакета

Нет

40-43

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

Да

44-47

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

Нет

48-51

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

Нет

52-55

Количество цилиндров в модуле

Нет

56-59

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

Нет

60-63

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

Нет

64-65

Количество свободных секторов в дорожке

Нет

66-67

Количество свободных секторов в цилиндре

Нет

68-71

Количество альтернативных цилиндров в модуле

Нет

72-73

Скорость вращения диска

Нет

74-75

Коэффициент чередования секторов

Нет

76-77

Сдвиг дорожки

Нет

78-79

Сдвиг цилиндра

Нет

80-83

Время коммутации головок в микросекундах

Нет

Таблица 6.1 (продолжение)

Диапазон байтов

Описание

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

84-87

Время позиционирования дорожек в микросекундах

Нет

88-91

Флаги

Нет

92-111

Специфическая информация о диске

Нет

112-131

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

Нет

132-135

Сигнатура (0x82564557)

Нет

136-137

Контрольная сумма

Нет

138-139

Количество разделов

Да

140-143

Размер загрузочной области

Нет

144-147

Максимальный размер суперблока файловой системы

Нет

148-163

Раздел ВБР №1 (см. табл. 6.2)

Да

164-179

Раздел ВБР №2 (см. табл. 6.2)

Да

180-195

Раздел ВБР №3 (см. табл. 6.2)

Да

196-211

Раздел ВБР №4 (см. табл. 6.2)

Да

212-227

Раздел ВБР №5 (см. табл. 6.2)

Да

228-243

Раздел ВБР №6 (см. табл. 6.2)

Да

244-259

Раздел ВБР №7 (см. табл. 6.2)

Да

260-275

Раздел ВБР №8 (см. табл. 6.2)

Да

276-291

Раздел ВБР №9 (см. табл. 6.2)

Да

292-307

Раздел ВБР №10 (см. табл. 6.2)

Да

308-323

Раздел ВБР №11 (см. табл. 6.2)

Да

324-339

Раздел ВБР №12 (см. табл. 6.2)

Да

340-355

Раздел ВБР №13 (см. табл. 6.2)

Да

356-371

Раздел ВБР №14 (см. табл. 6.2)

Да

372-387

Раздел ВБР №15 (см. табл. 6.2)

Да

388-403

Раздел ВБР №16 (см. табл. 6.2)

Да

404-511

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

Нет

Структура 16-байтовой записи из таблицы разделов ВББ приведена в табл. 6.2.

Таблица 6.2. Структура данных разметки диска ВБР

Диапазон байтов

Описание

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

0-3

Размер раздела ВБР в секторах

Да

4-7

Начальный сектор раздела ВБР

Да

8-11

Размер фрагмента файловой системы

Нет

12-12

Тип файловой системы (см. табл. 6.3)

Нет

13-13

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

Нет

14-15

Количество цилиндров файловой системы в группе

Нет

Поле типа определяет тип файловой системы, которая может находиться в разделе ВББ. Допустимые значения перечислены в табл. 6.3.

Таблица 6.3. Типы разделов BSD

Тип

Описание

0

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

1

Область подкачки

2

Version 6

3

Version 7

4

System V

5

4.1BSD

6

Eighth edition

7

4.2BSD FFS (Fast File System)

8

Файловая система MSDOS (4.4LFS)

9

4.4BSD LFS (Log Structured File System)

10

Используется, но имеет неизвестное или неподдерживаемое содержимое

11

OS/2 HPFS

12

CD-ROM (IS09660)

13

Загрузчик

14

Диск vinum

Самой распространенной файловой системой для FreeBSD и OpenBSD является 4.2BSD FFS (Fast File System). Для этой системы также создается минимум один раздел подкачки. Раздел NTFS обычно имеет тип «используется, но имеет неизвестное содержимое».

Теперь рассмотрим пример системы, в которой установлены как FreeBSD, так и OpenBSD. Содержимое таблицы разделов DOS выглядит так:

# mmls -t dos bsd-disk.dd Units are in 512-byte sectors

Slot Start End Length Description

00: ----------0000000000 0000000000 0000000001 Primary Table (#0)

01: ----------0000000001 0000000062 0000000062 Unallocated

02: 00:00 0000000063 0002056319 0002056257 Win95 FAT32 (OxOB)

03: 00:01 0002056320 0008209214 0006152895 OpenBSD (0xA6)

04: 00:02 0008209215 0019999727 0011790513 FreeBSD (0xA5)

Мы видим, что диск содержит раздел FAT (1 Гбайт), раздел OpenBSD (3 Гбайт) и раздел FreeBSD (6 Гбайт). В каждом из разделов OpenBSD и FreeBSD находится структура разметки диска с описанием дополнительных разделов. Далее будут описаны два раздела BSD.

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

Начнем с обработки разметки диска OpenBSD. Раздел начинается в секторе 2 056 320, и разметка диска находится во втором секторе:

# dd if=bsd-disk.dd skiр=2056321 bs=512 count=l xxd

0000000: 5745 5682 0500 0000 4553 4449 2f49 4445 WEB.....ESDI/IDE

0000016: 2064 6973 6b00 0000 4d61 7874 6f72 2039 disk...Maxtor 9

0000032: 3130 3234 4434 2020 0002 0000 3f00 0000 1024D4

0000048: 1000 0000 ff3f 0000 f003 0000 f02b 3101 .....?.......+1.

0000064: 0000 0000 0000 0000 lOOe 0100 0000 0000 ................

[... НУЛИ ]

0000128: 0000 0000 5745 5682 Ь65е 1000 0020 0000 . ...к'ЕУ..л.....

0000144: 0000 0100 501Г 0300 8060 114)0 0004 0000 ....Р....'......

0000160: 0708 1000 е061 0900 сШГ 2200 0004 0000 .....а....”.....

0000176: 0108 1000 №Ъ 3101 0000 0000 0000 0000 .....+1.........

0000192: 0000 0000 501Г 0300 Ь0е1 2Ь00 0004 0000 ....Р....._.....

0000208: 0708 1000 8056 0200 0001 2Ш 0004 0000 .....V..../.....

0000224: 0708 1000 0000 0000 0000 0000 0000 0000 ................

0000240: 0000 0000 ЗНЪ ЗсОО 00Г8 4000 0004 0000 . .. .?К<.. .0.....

0000256: 0708 1000 80а0 014)0 8057 3100 0004 0000 .........VII.....

0000272: 0708 1000 4160 ШО 3Г00 0000 0000 0000 ....А'..?.......

0000288: 0800 0000 9dae ЬЗОО 3143 7400 0000 0000 ........?С}.....

0000304: ОаОО 0000 0000 0000 0000 0000 0000 0000 ................

0000320: 0000 0000 0000 0000 0000 0000 0000 0000 ................

0000336: 0000 0000 0000 0000 0000 0000 0000 0000 ................

0000352: 0000 0000 0000 0000 0000 0000 0000 0000 ................

0000368: 0000 0000 0000 0000 0000 0000 0000 0000 ................

0000384: 0000 0000 0000 0000 0000 0000 0000 0000 ................

0000400: 0000 0000 0000 0000 0000 0000 0000 0000 ................

[...]

В байтах 0-3 и 132-135 присутствуют сигнатуры 0x825644557. После второй сигнатуры байты 138-139 показывают, что таблица разделов содержит 16 (0x0010) записей. Таблица начинается в следующей строке с байта 148, продолжается шестнадцатью 16-байтовыми структурами и завершается в позиции 403. Записи 11-16 не используются и содержат нули. Оставшаяся часть сектора не используется структурой разметки диска.

В табл. 6.4 приведены основные данные шестнадцати записей таблицы разделов. Десятичные эквиваленты заключены в скобки.

Таблица 6.4. Содержимое структуры разметки диска ВБР в образе диска

Начало

Размер

Тип

1

0x00^6080 (2 056 320)

ОхОООЗШО (204 624)

0x07 (7)

2

0х00227ГсЮ (2 260 944)

0х000961е0 (614 880)

0x01 (1)

3

0x00000000 (0)

0х01312ЬЮ (19 999 728)

0x00 (0)

4

0х002Ье1Ь0 (2 875 824)

0x00031Г50 (204 624)

0x07 (7)

5

0х002Ю100(3 080 448)

0x00025680 (153 216)

0x07 (7)

6

0x00000000 (0)

0x00000000 (0)

0x00 (0)

7

0х0040Г800 (4 257 792)

ОхООЗс4ЬЗГ (3 951 423)

0x07 (7)

8

0x00315780 (3 233 664)

0х000Га080 (1 024 128)

0x07 (7)

9

ОхООООООЗГ(63)

0х001Г6041 (2 056 257)

0x08 (8)

10

0х007с1433Г (8 209 215)

0х00ЬЗае9с1 (11 775 645)

0x0а (10)

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

Образ, использованный в нашем примере, соответствует этой схеме. Первый раздел начинается вместе с разделом БОБ в секторе 2 056 320. У второго раздела поле типа равно 1, что соответствует области подкачки. Третий раздел начинается в секторе 0, а его размер соответствует размеру всего диска. Разделы 4, 5,

7 и 8 относятся к типу 4.2BSD FFS, а их начальные секторы увеличиваются вплоть до раздела 9. Раздел 9 начинается с сектора 63, а его тип соответствует файловой системе FAT. Он представляет раздел FAT, описанный в первой записи таблицы разделов DOS, в разметке диска BSD. Раздел 10 обладает неизвестным типом. Он представляет раздел FreeBSD, который описан третьей записью в приведенной ранее таблице разделов DOS. Так как разделу 9 соответствует буква «i», пользователь может обращаться к разделу FAT через имя /dev/wdOi. Как говорилось ранее, OpenBSD игнорирует содержимое таблицы разделов DOS после загрузки.

Таблица 6.5 показывает, какие разделы будут доступны для пользователя в системе OpenBSD.

Таблица 6.5. Файловые системы, доступные в системе OpenBSD

Устройство

Описание

Точка монтирования

Начальный сектор

Конечный сектор

/dev/wdOa

4.2FFS BSD

/

2 056 320

2 260 943

/dev/wdOb

Подкачка

-

2 260 944

2 875 823

/dev/wdOc

Весь диск

-

0

19 999 727

/dev/wdOd

4.2FFS BSD

/tmp/

2 875 824

3 080 447

/dev/wdOe

4.2FFS BSD

/home/

3 080 448

3 233 663

/dev/wdOg

4.2FFS BSD

/var/

4 257 792

820 921

/dev/wdOh

4.2FFS BSD

/usr/

3 233 664

4 257 791

/dev/wdOi

FAT

Выбирается пользователем

63

2 056 319

/dev/wdOj

Раздел FreeBSD

-

8 209 215

19 984 859

Раздел FreeBSD нельзя смонтировать, потому что для этого необходимо сначала прочитать разметку диска для определения местонахождения файловой системы. Для просмотра тех же данных из разметки диска можно воспользоваться утилитой mmls, указав в командной строке тип bsd. Смещение раздела BSD должно задаваться с ключом -о, поскольку мы работаем с образом диска.

# mmls -t bsd -о 20563210 bsd-disk.dd

BSD Disk Label

Units are in 512-byte sectors

Slot Start End Length Description

00: 02 0000000000 0019999727 0019999728 Unused (0x00)

01: 08 0000000063 0002056319 0002056257 MSDOS (0x08)

02: 00 0002056320 0002260943 0000204624 4.2BSD (0x07)

03: 01 0002260944 0002875823 0000614880 Swap (0x01)

04: 03 0002875824 0003080447 0000204624 4.2BSD (0x07)

05: 04 0003080448 0003233663 0000153216 4.2BSD (0x07)

06: 07 0003233664 0004257791 0001024128 4.2BSD (0x07)

07: 06 0004257792 0008209214 0003951423 4.2BSD (0x07)

08: 09 0008209125 0019984859 0011776454 Unknown (OxOA)

Вспомните, что программа mmls сортирует выходные данные по начальному сектору раздела, поэтому раздел FAT находится в начале, хотя он и занимает восьмую позицию в таблице разделов (позиция указывается в столбце Slot).

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


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



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

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