загрузка...

Структуры данных i386

  Перед установкой Solaris в системе i386 необходимо предварительно создать один или несколько разделов DOS. В типичной установке создается загрузочный раздел (тип раздела DOS ОхВЕ) и раздел с файловыми системами (тип раздела DOS 0x82). Загрузочный раздел содержит загрузочный код, необходимый для запуска системы, и файловая система как таковая в нем отсутствует. Структура разметки диска находится во втором секторе раздела файловой системы DOS (тип 0x82) и описывает строение разделов Sun внутри раздела DOS. Все разделы Sun должны начинаться за началом раздела DOS. На рис. 6.6 показан диск с тремя разделами DOS; последний раздел содержит разметку диска и три раздела Sun.
Структура разметки диска занимает 512 байт, и работать с ней удобнее, чем со Spare-версией, потому что вся информация о разделах хранится в одном месте. Другое преимущество 1386-версии состоит в том, что при хранении информации используется адресация LBA (а не CHS). Помимо этих различий, две структуры очень похожи. Первые 456 байтов разметки диска называются оглавлением тома, или VTOC (Volume Table Of Contents); здесь хранится информация о разделах, их количестве, размере сектора и т. д. Структура данных разметки диска приведена в табл. 6.14.
Таблица 6.14. Структура данных разметки диска Sun i386

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

Описание

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

0-11

Загрузочная информация

Нет

12-15

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

Нет

16-19

Версия

Нет





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

Описание

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

20-27

Имя тома

Нет

28-29

Размер сектора

Да

30-31

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

Да

32-71

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

Нет

72-83

Раздел 1 (см. табл. 6.15)

Да

84-95

Раздел 2 (см. табл. 6.15)

Да

96-107

Раздел 3 (см. табл. 6.15)

Да

108-119

Раздел 4 (см. табл. 6.15)

Да

120-131

Раздел 5 (см. табл. 6.15)

Да

132-143

Раздел 6 (см. табл. 6.15)

Да

144-155

Раздел 7 (см. табл. 6.15)

Да

156-167

Раздел 8 (см. табл. 6.15)

Да

168-179

Раздел 9 (см. табл. 6.15)

Да

180-191

Раздел 10 (см. табл. 6.15)

Да

192-203

Раздел 11 (см. табл. 6.15)

Да

204-215

Раздел 12 (см. табл. 6.15)

Да

216-227

Раздел 13 (см. табл. 6.15)

Да

228-239

Раздел 14 (см. табл. 6.15)

Да

240-251

Раздел 15 (см. табл. 6.15)

Да

252—263

Раздел 16 (см. табл. 6.15)

Да

264-327

Временные штампы (не используется)

Нет

328—455

Метка тома

Нет

456-507

Сведения об оборудовании

Нет

508-509

Сигнатура (OxDABE)

Нет

510-511

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

Нет



Таблица 6.15. Структура записи раздела в разметке диска Sun 1386

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

Описание

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

0-1

Тип раздела (см. табл. 6.11)

Нет

2-3

Флаг (см. табл. 6.12)

Нет

4-7

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

Да

8-11

Размер в секторах
/>Да


В полях типа и флагов используются те же значения, которые приводились ранее для структур данных Sparc. Для идентификации разделов в Solaris на платформе i386 необходимо проанализировать записи разделов VTOC и определить их структуру по начальному сектору и размеру. Начальный сектор задается по отношению к разделу DOS (с типом 0x82). В нашем примере раздел DOS с разметкой диска начинается с сектора 22 496. Следовательно, разметка диска находится в секторе 22 497: dd if=i386-disk.dd bs=512 skip=22497 | xxd
0000000: 0000 0000 0000 0000 0000 0000 eede 0d60               '
0000016: 0100 0000 0000 0000 0000 0000 0002 1000
0000032: 0000 0000 0000 0000 0000 0000 0000 0000
0000048: 0000 0000 0000 0000 0000 0000 0000 0000
0000064: 0000 0000 0000 0000 0200 0000 cOOe 1000
0000080: 0082 3e00 0300 0100 dOOb 0000 f002 1000              ..gt;
0000096: 0500 0000 0000 0000 309a 7001 0000 0000                            0.p
0000112: 0000 0000 0000 0000 0000 0000 0000 0000
0000128: 0000 0000 0400 0000 c090 4e00 2000 faOO               N. ...
0000144: 0000 0000 0000 0000 0000 0000 0800 0000
0000160: e090 4801 0041 lfOO 0100 0100 0000 0000              ..H..A
0000176: f003 0000 0900 0100 f003 0000 e007 0000
[... НУЛИ]
0000320:              0000              0000              0000              0000              4445              4641              554c              5420                            DEFAULT
0000336:              6379              6c20              3233              3936              3420              616c              7420              3220 cyl 23964 alt 2
[...
НУЛИ]
0000448:              0000              0000              0000              0000              0000              0000              0000              0000                            ]...]..
0000464: 0200 0000 1000 0000 3f00 0000 0100 0000                            ?
0000480:              0000              lOOe              0000              0000              0000              0000              0000              0000
0000496:              0000              lOOe              0000              0000              0000              0000              beda              a24a               ]
Данные получены в системе i386, в которой используется прямой порядок байтов. По значению со смещением 30 мы видим, что таблица содержит 16 разделов (0x10). Первая запись раздела начинается со смещением 72 и заканчивается со смещением 83. Байты 72-73 показывают, что запись имеет тип 0x02, то есть представляет корневой раздел. Начальный сектор в байтах 76-79 равен 1 052 352 (ОхООЮОЕСО). Байты 80-83 указывают размер раздела; мы видим, что он равен 4 096 512 (0х003е8200). В данной разметке используются 10 разделов, описание последнего находится в байтах 180-191. Все временные штампы равны нулю, а имя тома состоит из слова DEFAULT и параметров геометрии диска.
Для получения информации о местонахождении загрузочного раздела и разделов файловых систем из образа диска i386 молено воспользоваться любой программой, работающей с разделами DOS. При запуске mmls для диска Solaris на платформе i386 был получен следующий результат: mmls -t dos i386-disk.dd DOS Partition Table

Units are in 512-byte sectors


Slot

Start

End

Length

Description

00:


0000000000

0000000000

0000000001

Primary Table (#0)

01:


0000000001

0000001007

0000001007

Unallocated

02:

00:00

0000001008

0000021168

0000021168

Solaris 8 Boot (OxBE)

03:


0000022176

0000000320

0000000320

Unallocated

04:

00:01

0000022496

0024180911

0024158416

Linux swap / Solaris x86 (0x82)


Напомню, что раздел типа ОхВЕ предназначен для загрузочного кода, файловая система в нем отсутствует. Файловые системы и структуры разметки диска хранятся в разделах типа 0x82. Ту же информацию можно получить, запустив утилиту fdisk в Linux, но fdisk не включает разделы Solaris в разметку диска. Чтобы просмотреть содержимое файловой системы, либо извлеките раздел, начиная с сектора 22 496, либо просто вызовите mmls и укажите смещение с параметром -о: mmls -t sun -о 22496 disk8.dd Sun VTOC

Units are

in 512-byte sectors




Slot

Start

End

Length

Description

00

02

0000000000

0024156719

0024156720

backup (0x05)

01

08

0000000000

0000001007

0000001008

boot (0x01)

02

09

0000001008

0000003023

0000002016

alt sector (0x09)

03

01

0000003024

0001052351

0001049328

swap (0x03)

04

00

0001052352

0005148863

0004096512
/>/ (0x02)

05

05

0005148864

0021532895

0016384032

/usr/ (0x04)

06

07

0021532896

0023581151

0002048256

/home/ (0x08)


Как говорилось ранее, адреса задаются по отношению к началу раздела DOS, поэтому при извлечении данных программой dd необходимо увеличивать адреса всех начальных секторов на 22 496. Эксперименты показали, что при загрузке Linux с диском Solaris i386, подключенным как один из ведомых (slave) дисков, Linux создает устройства только для первых восьми разделов Solaris. Для всех последующих разделов устройства не создаются.
Факторы анализа
При анализе разделов Solaris действуют те же особые соображения, что и при анализе других систем разделов. Структура разметки диска содержит неиспользуемые поля, в которых могут находиться скрытые данные (хотя объем этого скрытого пространства невелик).
Как и в других системах разделов, поле типа в описании раздела не имеет строго обязательного смысла. Даже если в структуре разметки диска сказано, что раздел является разделом /var/ или содержит область подкачки, это еще не значит, что это действительно так. Как всегда, проведите поиск неиспользуемого пространства на диске.
Если местонахождение разметки диска неизвестно, попробуйте провести поиск по сигнатурам. Сигнатура 0x600DDEEE находится внутри разметки диска, а сигнатура OxDABE хранится в байтах 508-509.
Итоги
Системы Solaris часто встречаются в корпоративных сетях и часто становятся объектом экспертного анализа при попытках взлома и мошенничества. В этой

части книги было показано, как организованы диски Solaris и как вывести или извлечь соответствующую служебную информацию. Структура разметки диска относительно проста, а для ее чтения можно воспользоваться программами fdisk и mmls.
<< | >>
Источник: Кэрриэ Б.. Криминалистический анализ файловых систем. 2007

Еще по теме Структуры данных i386:

  1. Структуры данных
  2. Структуры данных
  3. Структуры данных журнала
  4. Структуры данных
  5. Структуры данных
  6. Атрибуты и структуры данных индексов
  7. Структуры данных Sparc
  8. 14.1. ЗАДАЧИ И СТРУКТУРА. ИСТОЧНИКИ ДАННЫХ
  9. Структуры данных FAT
  10. Структуры данных NTFS
  11. Структуры данных Ext2 и Ext3