Відновлення видалених розділів 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Відновлення видалених розділів



Бажаючи перешкодити цифровій експертизі, зловмисники часто наново розбивають диск на розділи або стирають інформацію про існуючі розділи. Схожа, але нешкідливіша проблема виникає при відновленні системи із пошкодженими структурами розділів. В таких ситуаціях аналіз помітно ускладнюється. На щастя, існує декілька програм, що спрощують відновлення розділів. Розглянемо, як працюють ці програми.

Засоби відновлення розділів виходять з припущення, що в кожному розділі знаходилася файлова система. Багато файлових систем починаються із структури даних з постійною сигнатурою. Наприклад, файлова система FAT містить значення 0x55 і 0хАА в байтах 510 і 511 першого сектора. Програма відновлення шукає сигнатури і визначає по них можливий початок розділу.

При виявленні сигнатури часто виконуються додаткові перевірки з діапазонами значень, допустимих для деяких полів структури даних. Наприклад, одне з полів файлової системи FAT визначає кількість секторів в кластері; значення поля є мірою 2 (наприклад, 1, 2, 4, 8, 16, 32, 64 або 128). Будь-яке інше значення свідчить про те, що сектор не є частиною завантажувального сектора файлової системи FAT, хоча він і закінчується сигнатурою 0х55АА.

Механізм пошуку залежить від конкретної програми. Одні програми переглядають кожен сектор і порівнюють його вміст з відомими сигнатурами. Інші аналізують дані тільки на межах циліндрів, тому що розділи найчастіше створюються саме там. Треті за даними службових структур визначають розмір файлової системи і переходять до її кінця, де продовжують пошук інших відомих структур даних.

Наприклад, в системі Linux для відновлення розділів застосовується програм-ма gpart. Програма gpart здатна ідентифікувати декілька файлових систем, для чого вона перевіряє вміст секторів і робить висновки відносно того, яка система є найбільш ймовірною.

Її стандартний вивід містить занадто мало інформації, тому в командний рядок слід включити прапор - v. В наступному прикладі на диску знаходиться три розділи, проте таблиця розділів була стерта. Програма gpart була запущена для фізичного образу диска з прапором - v для визначення меж початкових секторів:

# gpart - V disk2.dd

* Warning: strange partition table magic 0x0000.

[..]

Begin scan..

Possible partition(D0S FAT). size(800mb), offset(Omb) type: 006(Primary 'big' DOS (>32MB)) size: 800mb #s(1638566) s(63-1638628) chs: (0/1/1) -(101/254/62) d (0/1/1) -(101/254/62) г hex: 00 01 01 00 06 FE 3E 65 3F 00 00 00 A6 00 19 00

Possible partition(DOS FAT). size(917mb). offset(800mb)

type: 006(Primary 'big' DOS (>32MB))

size: 917mb #s(1679604) s(1638630-3518233)

chs: (102/0/1) -(218/254/62) d (102/0/1) -(218/254/62) г

hex: 00 00 01 66 06 FE 3E DA E6 00 19 00 34 AE 1С 00

Possible partitiondinux ext2). size(502mb). offset(1874mb) type: 131(Linux ext2 filesystem)) size: 502mb #s(1028160) s(3839535-4867694) chs: (239/0/1) -(302/254/63) d (239/0/1) -(302/254/63) г hex: 00 00 01 EF 83 FE 7F 2E 2F 96 ЗА 00 40 BO OF 00

З результатів видно, що на диску, ймовірно, існували два розділи FAT і один розділ Ext2. Поле у кінці рядка size: показує мізцерозташування розділу в секторах. Якби прапор - v не був заданий, то ця інформація не виводилася б. Інша аналогічна утиліта - TestDisk Крістофа Гренье. Варто пам’ятати, що автоматизоване відновлення працює тільки при простому видаленні або ушкодженні таблиці розділів.

 

 

Лекція 3 Розділи на персональних комп'ютерах

Розглянемо розділи DOS.

 

Розділи в DOS

Найбільшого поширення набула система розділів DOS. Розділи DOS на протязі багатьох років використовувалися на платформі Intel IА32 (тобто i386/x86), проте офіційна специфікація досі відсутня. Існує багато документів (опублікованих як Microsoft, так і сторонніми джерелами), але стандартного опису немає.

Більше того, немає не лише стандартного опису, але нi стандартної назви. Компанія Microsoft називає диски з подібним типом системи розділів дисками MBR (Master Boot Record) - на відміну від дисків GPT (GUID Partition Table), які використовуються в системах EFI (Extensible Firmware Interface) і 64-розрядних системах на базі Intel Itanuim (IA64). Починаючи з Windows 2000, компанія Microsoft також ввела відмінності між базовими і динамічними дисками. Базовим може бути диск MBR або GPT, при цьому розділи диска незалежні і автономні. Динамічні диски можуть бути дисками MBR або GPT, а їх розділи можуть об'єднуватися в один розділ більшого розміру. Базові диски традиційно асоціюються з розділами DOS, а диски GPT ще не отримали широкого поширення.

Розділи DOS застосовуються в Microsoft DOS, Microsoft Windows, Linux і в системах FreeBSD і OpenBSD на платформі IА32. Ця система набула найбільшого поширення, але вона ж виявилася найбільш складною. Справа в тому, що система проектувалася в 1980-х роках для малих систем, а потім поступово адаптувалася для великих сучасних систем. Фактично в ній задіяні два різних методи визначення розділів. Приведемо загальну характеристику системи і її основних структур даних, представлені програми збору інформації про розділи на диску, а також деякі міркування, які повинні враховуватись при аналізі.

Основні концепції MBR.

В першому 512-байтовому секторі диска, на якому створена структура розділів DOS, зберігається основний завантажувальний запис MBR (Master Boot Record). MBR містить завантажувальний код, таблицю розділів і сигнатуру. Команди завантажувального коду повідомляють комп'ютер, як обробити таблицю розділів і де знаходиться операційна система. Таблиця розділів містить чотири записи, кожна з яких може описувати один розділ DOS. Записи складаються з наступних полів:

- початкова адреса CHS;

- кінцева адреса CHS;

- початкова адреса LBA;

- кінцева адреса LBA;

- кількість секторів в розділі;

- тип розділу;

- прапори.

Запис таблиці описує місцезнаходження розділу в адресах CHS і LBA. Варто пам'ятати, що адреси CHS застосовні тільки для дисків менше 8 Гбайт, тоді як адреси LBA дозволяють використовувати диски, розмір яких обчислюється в тера-байтах (Тбайт).

Поле типу визначає тип даних, що зберігаються в розділі: наприклад, FAT, NTFS або FreeBSD. Використання поля типу залежить від операційної системи. Скажімо, Linux не звертає на нього уваги - файлову систему FAT можна розмістити в розділі з типом NTFS, і вона буде змонтована як FAT. З іншого боку, Microsoft Windows враховує значення цього поля і не намагається змонтувати файлову систему в розділ, якщо відповідний тип розділу не підтримується. Таким чином, якщо диск містить файлову систему FAT в розділі з типом файлової системи Linux, користувач не побачить цю файлову систему FAT в Windows. Ця особливість іноді застосовується для приховання розділів в Windows. Наприклад, деякі програми додають зайвий біт до типу розділу, який підтримується Windows, щоб розділ не відображувався при повторному завантаженні системи.

Кожен запис також містить прапор, який вказує, чи є розділ "завантажувальним". По цьому прапору визначається місцезнаходження операційної системи при завантаженні комп'ютера. Використовуючи чотири записи в MBR, можна описати просту структуру диска, що містить не більше чотирьох розділів. На рис. 3.1 показаний приклад диска з двома розділами і MBR в першому секторі.

Концепція розширеного розділу.

MBR дозволяє описати до чотирьох розділів. Проте в багатьох системах цієї кількості недостатньо. Припустимо, є 12-гігабайтний диск, який користувач хоче розділити на шість 2-гігабайтних розділів, тому що він використовує декілька операційних систем. Описати шість розділів за допомогою чотирьох записів неможливо.

Саме той спосіб, який був вибраний для вирішення цієї проблеми, робить розділи DOS такими складними. Загальний принцип полягає в наступному: в MBR створюється один, два або три записи для звичайних розділів, а потім формується "розширений розділ", що заповнює місце, яке залишилося на диску. Первинним розділом файлової системи називається розділ, представлений записом в MBR і містить файлову систему або інші структуровані дані. Первинним розширеним розділом називається розділ, представлений записом в MBR і містить вторинні розділи. На рис. 3.2зображено три первинні розділи файлової системи з одним первинним розширеним розділом.

У MBR бачили централізовану таблицю з описом декількох розділів; тепер ми бачимо пов'язаний список розділів. Перед кожним розділом файлової системи зберігається службова інформація, що описує цей розділ і місцезнаходження наступного розділу. Всі розділи повинні знаходитися в основному розширеному розділі, ось чому йому необхідно виділити максимум доступного простору.

Вторинний розділ файлової системи, також названий у Windows логічним розділом, знаходиться у межах основного розширеного розділу і містить файлову систему або інші структуровані дані. Вторинний розширений розділ містить таблицю розділів і додатковий розділ файлової системи. Кожен вторинний розширений розділ є "обгорткою" для вторинного розділу файлової системи; він описує місцезнаходження вторинного розділу файлової системи і наступного вторинного розширеного розділу.

На рис. 3.3 показано, як працює система вторинних розділів. Вторинний розширений розділ 1 містить таблицю розділів, в якій зберігається інформація про вторинний розділ файлової системи 1 і вторинному розширеному розділі. Вторинний розширений розділ 2 містить таблицю розділів з інформацією про вторинний розділ файлової системи 2. Але в загальному випадку він також може містити посилання на наступний вторинний розширений розділ, і так далі, поки не буде розподілено увесь вільний дисковий простір.

Загальна картина.

Об'єднаємо два методи визначення розділів. Якщо в системі використовується від одного до чотирьох розділів, то для їх створення досить MBR і розширенні розділи не будуть потрібні. Якщо кількість розділів більше 4, в MBR створюється до трьох первинних розділів файлової системи, а місце, що залишилося, на диску виділяється під первинний розширений розділ.

В первинному розширеному розділі інформація про розділи зберігається у форматі зв'язаного списку. Для оптимізації схеми із зв'язаним списком, описаної раніше, можна відмовитися від первинного створення вторинного розширеного розділу і помістити таблицю розділів в початок первинного розширеного розділу. В цьому випадку таблиця описуватиме одну вторинну файлову систему і один вторинний розширений розділ.

Розглянемо приклад. Є 12-гігабайтний диск, який потрібно розбити на шість 2-гігабайтних розділів. Перші три 2-гігабайтні розділи створюються в перших трьох записах MBR, а останніх 6 Гбайт виділяються під первинний розширений розділ, що включає дисковий простір від 6 до 12 Гбайт.

Залишається визначити ще три розділи у форматі зв'язаного списку. Ми використовуємо таблицю розділів в першому секторі первинного розширеного розділу, створюємо вторинний розділ файлової системи в діапазоні від 6 Гбайт до 8 Гбайт і створюємо вторинний розширений розділ в діапазоні від 8 Гбайт до 10 Гбайт. Таблиця розділів знаходиться у вторинному розширеному розділі і містить записи вторинного розділу файлової системи в діапазоні від 8 Гбайт до 10 Гбайт і вторинного розширеного розділу в діапазоні від 10 Гбайт до 12 Гбайт. Таблиця розділів знаходиться в останньому вторинному розширеному розділі і містить запис останнього розділу файлової системи в діапазоні від 10 до 12 Гбайт. Схема показана на рис. 3.4.

Як стверджується в більшості документів, розширена таблиця розділів повинна містити не більше одного запису для розділу вторинної файлової системи і одному запису для вторинного розширеного розділу. На практиці багато операційних систем не видаватимуть помилку при використанні більше двох записів.

Розширені розділи мають спеціальні типи, які використовуються в їх записах таблиць розділів. А щоб ця складна схема стала ще складнішою, існує декілька типів розширених розділів, серед яких не відрізняються типи первинних і вторинних розширених розділів. Самі поширені типи розширених розділів - "розширений розділ DOS", "розширений розділ Windows 95" і "розширений розділ Linux".

Завантажувальний код.

Завантажувальний код диска DOS знаходиться в перших 446 байтах першого 512-байтового сектора, тобто в MBR. У кінці сектора знаходиться таблиця розділів. Стандартний завантажувальний код Microsoft обробляє таблицю розділів MBR і визначає, для якого розділу встановлений прапор завантаження. Виявивши такий розділ, завантажувач звертається до його першого сектора і передає управління коду, що знаходиться в ньому. Код на початку розділу є специфічним для операційної системи. Віруси, що впроваджуються в завантажувальний сектор, записують себе в перші 446 байт MBR, щоб вони виконувалися при кожному завантаженні комп'ютера.

В наші дні комп'ютери з декількома операційними системами стають все більш поширеним явищем. Проблема вирішується двома способами. Система Windows записує в завантажувальний розділ код, який дає можливість користувачеві вибрати завантажувану операційну систему. Іншими словами, спочатку виконується завантажувальний код в MBR, який передає керування завантажувальному коду Windows. Завантажувальний код Windows дає можливість користувачеві вибрати розділ для завантаження системи.

Другий спосіб заснований на модифікації коду MBR. Новий код MBR видає список можливих варіантів, з якого користувач вибирає розділ для завантажування. Як правило, таке рішення вимагає більшого об'єму коду і використовує деякі вільні сектори, існуючі перед початком першого розділу.

Структури даних

Від розгляду системи розділів DOS перейдемо до детального опису структур, закладених в основу цієї системи.

Структура даних MBR.

Таблиці розділів DOS знаходяться в MBR і в першому секторі кожного розширеного розділу. У всіх випадках використовується одна і та ж 512-байтова структура. Перші 446 байт зарезервовані для завантажувального коду. Код повинен знаходитися в MBR, оскільки він використовується при запуску комп'ютера, проте для розширених розділів він не потрібний, і на його місці можуть зберігатися приховані дані. Структура MBR в табличній формі показана в таблиці 3.1.

Таблиця 3.1 - Структури даних в таблиці розділів DOS

Діапазон байт Опис Необхідність
0-445 Завантажувальний код Ні
446-461 Запис таблиці розділів №1(таблиця 1.2) Так
462-477 Запис таблиці розділів №2(таблиця 1.2) Так
478-493 Запис таблиці розділів №3(таблиця 1.2) Так
494-509 Запис таблиці розділів №4(таблиця 1.2) Так
510-511 Сигнатура (0хАА55) Ні

 

Таблиця розділів містить чотири 16-байтові записи, структура яких представлена в таблиці3.2. Адреси CHS потрібні для старих систем, в яких вони використовуються, але в нових системах вони не потрібні.

 

Таблиця 3.2 – Структура даних запису розділу DOS

Діапазон байт Опис Необхідність
0-0 Прапор завантажувального розділу Ні
1-3 Початкова адреса CHS Так
4-4 Тип розділу (див. таблицю 1.3) Ні
5-7 Кінцева адреса CHS Так
8-11 Початкова адреса LBA Так
12-15 Розмір в секторах Так

 

Прапор завантажувального розділу потрібний не завжди. Стандартний завантажувальний код комп'ютера з єдиною ОС шукає запис, в якого цей прапор дорівнює 0x80. Наприклад, якщо на комп'ютері встановлена Microsoft Windows, а диск розбитий на два розділи, то в розділу з операційною системою (наприклад, C:\windows) буде встановлений прапор завантажувального розділу. З іншого боку, якщо завантажувальний код пропонує користувачеві вибрати розділ для завантаження системи, прапор може виявитися зайвим. Втім, деякі завантажувальні програми встановлюють його після того, як користувач вибере відповідний розділ для завантаження.

Початкові і кінцеві адреси CHS складаються з головки (8 біт), сектора (6 біт) і циліндра (10 біт). Теоретично для кожного розділу має бути задана тільки одна з двох адрес (CHS або LBA). ОС і код завантаження системи повинні визначити, які значення необхідно задати. Наприклад, Windows 98 і ME використовують адреси CHS для розділів, що знаходяться в перших 7,8 Гбайт диска, a Windows 2000 і наступні системи завжди ігнорують адреси CHS. Деякі програми створення розділів намагаються задавати адреси обох типів для забезпечення сумісності. Використання цих полів залежить від застосування.

Поле типу розділу ідентифікує тип файлової системи, яка повинна знаходитися в розділі. Список найбільш поширених типів приведений в таблиці 3.3.

Таблиця 3.3 – Деякі типи розділів DOS

Тип Опис
00x00 Порожньо
00x01 FAT12, CHS
00x04 FAT16, 16-32 Мбайт, CHS
00x05 Розширений розділ Microsoft, CHS
00x06 FAT 16, 32 Мбайт-2 Гбайт, CHS
00x07 NTFS
0х0b FAT32, CHS
0x0с FAT32, LBA
0x0e FAT16, 32 Мбайт-2 Гбайт, LBA
0x0f Розширений розділ Microsoft, LBA
0x11 Прихований розділ FAT12, CHS
0x14 Прихований розділ FAT 16, 16-32 Мбайт, CHS
0x16 Прихований розділ FAT 16, 32 Мбайт-2 Гбайт, CHS
0x1b Прихований розділ FAT32, CHS
0x1c Прихований розділ FAT32, LBA
0x1e Прихований розділ FAT16, 32 Мбайт-2 Гбайт, LBA
0x42 Microsoft MBR, динамічний диск
0x82 Solaris х86
0x82 Розділ підкачки Linux
0x84 Дані сплячого режиму
0x85 Розширений розділ Linux
0x86 Набір томів NTFS
0x87 Набір томів NTFS
0xa0 Сплячий режим
0xa1 Сплячий режим
0xa5 FreeBSD
0ха6 OpenBSD
0xa8 Mac ОSХ
0xa9 NetBSD
0xab Mac ОSХ
0xb7 ВSDI
0xb8 Розділ підкачки ВSDI
0xee Диск ЕFI GРТ
0xef Системний розділ ЕFI
0xfb Файлова система Vmware
0xfc Розділ підкачки Vmware

 

Звернемо увагу, скільки різних типів розділів існує для файлових систем Microsoft в діапазоні від 0x01 до 0x0f. Це пояснюється тим, що операційні системи Microsoft використовують тип розділу для визначення способу читання і запису даних в розділ. Windows може використовувати як традиційні, так і розширені обробники переривання BIOS INT13h. Розширені обробники INT 13h потрібні для роботи з дисками об'ємом більше 8,1 Гбайт і застосування адресації LBA (замість CHS). Звідси, типи FAT16 0x04 і 0х0Е однакові, але в другому випадку ОС буде використовувати розширені обробники при роботі з BIOS. Аналогічно, типи 0x0В і 0х0С представляють звичайну і розширену версії FAT32, а типи 0x05 h0x0F - звичайна і розширена версії розширених розділів. "Приховані" версії цих типів розділів містять 1 замість 0 у верхньому півбайті, а для їх створення застосовуються різні системні програми.

Щоб продемонструвати роботу з MBR і таблицями розділів, візьмемо інформацію з реальної системи і розберемо її вручну. В якості цього використовуватимемо комп'ютер з альтернативним завантаженням Windows і Linux, на жорсткому диску якого знаходяться вісім розділів файлових систем.

Перший частина взята з першого сектора диска. Дані виводяться утилітою xxd в Linux, але для отримання інформації також можна було скористатися шістнадцятковим редактором для Windows або UNIX. У Linux командний рядок виглядає так:

# dd if=disk3.dd bs=512 skip=0 count - 1 | xxd

У лівому стовпці виводиться десяткове зміщення в байтах, середні вісім стовпців містять дані в шістнадцятковому форматі, а останній стовпець - ті ж дані в кодуванні ASCII. Дані взяті із системи на базі IA32 з прямим порядком байтів, при якому молодші (менш значущі) байти розташовуються по менших адресах, тому байти в середніх стовпцях переставляються.

Перші 446 байт містять завантажувальний код. В останніх двох байтах сектора є присутньою сигнатура 0хАА55 (хоча і в переставленому вигляді через порядок байтів, використовуваний на цій платформі). Таблиця розділів виділена жирним шрифтом і починається із значення 0x0001 із зміщенням 446. Кожен рядок вихідних даних займає 16 байт; кожен запис таблиці теж займає 16 байт. Таким чином, другий запис починається рядком нижче за перший запис з числа 0x8000. У таблиці 1.4 приведено чотири записи таблиці розділів в описаній раніше структурі. Значення приводяться в шістнадцятковому записі, а десяткові еквіваленти поміщені в круглі дужки.

 

Таблиця 3.4 – Вміст первинної таблиці розділів в образі диска

Прапор Тип Початковий сектор Розмір
  0x00 0x07 00x0000003f(63) 00x001f6041 (2 056 257)
  0x80 0x83 00x001f6080 (2 056 320) 00x00032fcd (208 845)
  0x00 0x83 00x0022904d (2 265 165) 00x000fb040 (1 028 160)
  0x00 0x05 00x0032408d (3 293 325) 00x0496eb79 (76 999 545)

 

 

По таблиці 3.4 і типам розділів, перерахованим в таблиці 1.3, можна припустити, які дані знаходяться в кожному розділі. Перший розділ повинен містити файлову систему NTFS (тип 0x07), другий і третій - файлові системи Linux (0x83), а четвертий - розширений розділ (0x05). Для другого запису встановлений прапор завантажувального розділу. Присутність розширеного розділу абсолютно логічна, тому що раніше згадувалося про те, що на диску знаходяться 8 розділв. Структура диска для цієї таблиці розділів показана на рис. 3.5.

Структури даних розширеного розділу.

Раніше вже говорилося про те, що перший сектор розширеного розділу має ту ж структуру, що і MBR, але в розширених розділах він використовується для побудови зв’язаного списку. Записи таблиці розділів влаштовані дещо інакше, тому що відлік початкових адрес секторів ведеться не від початку диска. Більше того, початковий сектор вторинного розділу файлової системи також відраховується не від початкового сектора вторинного розширеного розділу.

Початкова адреса в записі вторинної файлової системи задається по відношенню до поточної таблиці розділів - і це цілком логічно, тому що вторинні розширені розділи служать "обгортками" для розділів файлових систем. З іншої стиорони, початкова адреса вторинного розширеного розділу задається відносно первинного розширеного розділу.

Розглянемо варіант, показаний на рис. 3.6. Первинний розширений розділ починається із сектора 1000 і займає 11000 секторів. Його таблиця розділів містить два записи. Перший запис описує файлову систему FAT з початковим сектором 63, який в сумі з сектором поточної таблиці розділів дає 1063. Другий запис призначений для розширеного розділу і починається з сектора 4000. У сумі з початковим сектором первинного розширеного розділу (1000) це дає сектор 5000.

Перейдемо до вторинного розширеного розділу (у секторі 5000). Перший запис таблиці розділів описує файлову систему NTFS з початковим сектором 63, який в сумі з адресою поточної таблиці розділів дає сектор 5063. Другий запис описує розширений розділ з початковим сектором 6500, який в сумі з сектором первинного розширеного розділу дає сектор 7500.

Розберемо ще один цикл, щоб усе остаточно прояснилося. Наступний розширений розділ починається з сектора 7500. Перший запис файлової системи EXT3FS починається з сектора 63, який в сумі з 7500 дає 7563. Другий запис описує вторинний розширений розділ, а її початкове значення 9000 в сумі з 1000 дає сектор 10 000.

Повернемося до нашого варіанту, в якому ми розбирали вручну таблицю розділів. Далі приводимо вміст першого сектора первинного розширеного розділу, що знаходиться в секторі 3 293 325:

# # del if=disk3.dd bs=512 skiр=0 count=l | xxd [..]

0000432:.................................... 0000 0000 0000 0000 0000 0000 0000 0001

00000000448:......................... Olcd 83fe 7fcb 3f00 0000 0082 ЗеОО 0000? >..

00000000464:......................... 41cc 05fe bfOb 3f82 ЗеОО 40b0 OfOO 0000 A?.>.@

0000480:.................................... 0000 0000 0000 0000 0000 0000 0000 0000

00000000496:............................... 0000 0000 0000 0000 0000 0000 0000 55aa U.

Чотири записи таблиці розділів виділено жирним шрифтом. Ми бачимо, що два останні записи не містять даних. У таблиці 1.5 представлена розшифровка перших двох записів таблиці розділів (нумерація розділів продовжує таблицю 3.4):

 

Таблиця 3.5 – Вміст первинної таблиці розділів в образі диска

Прапор Тип Початковий сектор Розмір
  0x00 0x07 0x0000003f(63) 0x001f6041 (2 056 257)
  0x00 0x05 0x003e823f (4 096 575) 0x000fb040 (1 028 160)

 

Запис 5 помічений типом файлової системи Linux (0x83); таким чином, розділ є вторинним розділом файлової системи, а його початковий сектор задається по відношенню до початку поточного розширеного розділу (сектор 3293325):

3 293 325 + 63 - 3 293 388

Запис 6 помічений типом розширеного розділу DOS, а початковий сектор цього розділу задається по відношенню до первинного розширеного розділу, який є поточним:

3 293 325 + 4 096 575 = 7 389 900

Структура диска в тому вигляді, в якому вона нам відома, показана на рис. 3.7. Перш ніж продовжити, звернемо увагу на розміри двох розділів. В MBR первинний розширений розділ має розмір 76999545 секторів. В цій таблиці розмір наступного вторинного розширеного розділу складає всього 1028160 секторів. Згадаємо, що розмір первинного розширеного розділу складається з розмірів усіх вторинних файлових систем і вторинних розширених розділів, тоді як розмір вторинного розширеного розділу складається з розміру наступного вторинного розділу файлової системи і розміру області, необхідної для зберігання таблиці розділів.

Можна продовжити і проаналізувати наступний вторинний розширений розділ, що знаходиться в секторі 7389900. Його вміст представлено в таблиці 3.6.

Таблиця 3.6 – Вміст першої вторинної розширеної таблиці розділів в образі диска

Прапор Тип Початковий сектор Розмір
  0x00 0x82 0x0000003f(63) 0x000fb001 (1 028 097)
  0x00 0x05 0x004e327f (5 124 735) 0x000fb040 (1 028 160)

 

Запис 7 описує розділ підкачки Linux; це вторинна файлова система, а початкова адреса сектора задається по відношенню до поточного розширеного розділу, тобто сектору 7389900: 7389900 + 63 = 7 389 963 Запис 8 описує розширений розділ файлової системи DOS, тому його адреса початкового сектора задається по відношенню до первинного розширеного розділу, тобто сектору 3293325: 3293325 + 5124735 = 8418060.

Фактори аналізу.

Згадаємо деякі обставини, які потрібно враховувати при аналізі диска з розділами DOS. Для таблиці розділів і завантажувального коду зазвичай вистачає одного сектора, але, як правило, для MBR і розширених розділів виділяються 63 сектори, тому що розділи повинні починатися на границі циліндра. Отже, розділ 0 розширеного розділу або MBR містить код і таблицю розділів, а сектори 1-62 можуть залишатися невживаними. У невживаних секторах може зберігатися додатковий завантажувальний код, але також в них можуть знаходитися дані від попередньої установки, нулі або приховані дані. Windows ХР не стирає дані в невживаних секторах при створенні розділів на диску.

Розділи в більшості випадків починаються з сектора 63, і цією обставиною можна скористатися для відновлення втримуваного першого розділу, оскільки за відсутності таблиці розділів описані засоби працювати не будуть. Можна спробувати витягнути дані, починаючи з сектора 63. В цьому випадку у вибірку будуть включені інші розділи з образу, але можливо, вдасться визначити фактичний розмір розділу за даними файлової системи. Видобування розділу програмою dd здійснюється так: # dd if=disk.dd bs=512 skip=63 of=part.dd

Теоретично розширені розділи повинні містити тільки два записи: для розділу вторинної файлової системи і вторинного розширеного розділу. Більшість програм створення розділів наслідують ці правила, але існує можливість створити третій розділ вручну. Microsoft Windows ХР і Red Hat 8.0 відобразили "зайвий" розділ, коли розширений розділ містив більше двох записів, проте ні та, ні інша ОС не дозволили створити таку конфігурацію. Можна протестувати свої аналітичні програми і переконатися в тому, що в подібних "неправильних" конфігураціях вони виводять інформацію про усі розділи.

Значення в полі типу розділу враховується не завжди. Windows використовує поле для ідентифікації розділів для монтування, але в таких операційних системах, як Linux, користувач дістає доступ до усіх розділів. Таким чином, користувач може помістити файлову систему FAT в розділ, призначений (відповідно до типу) для зберігання даних сплячого режиму. Ця файлова система не монтуватиметься в Windows - тільки в Linux.

Деякі версії Windows створюють в MBR тільки один первинний розділ, а усі інші розділи створюють як розширені. Іншими словами, вони не створюють три первинні розділи, перш ніж переходити до створення розширених розділів.

Якщо частина таблиці розділів буде пошкоджена, можливо, доведеться таблиці розширених розділів шукати на диску. Пошук слід здійснювати по сигнатурі 0хАА55 в двох останніх байтах секторах. Звертаємо увагу: у файлових системах NTFS і FAT є присутніми в тій же позиції першого сектора. Щоб відрізнити таблицю розділів від завантажувального сектора файлової системи, доведеться проаналізувати інший вміст сектора. Якщо сектор виявиться завантажувальним сектором файлової системи, можливо, таблиця розділів знаходиться на 63 сектори раніше нього.

 

 

Лекція 4 Розділи Apple

Комп'ютери з операційною системою Apple Macintosh зустрічаються рідше, ніж комп'ютери з Microsoft Windows, проте їх популярність зросла з виходом Mac OS X, операційної системи на базі UNIX. Розділи, про які піде мова, застосовуються на останніх портативних і настільних комп'ютерах Apple іі системою OS X, старіших системах з Macintosh 9 і навіть портативних пристроях iPod, призначених для відтворення аудіо у форматі МР3. Карти розділів також можуть використовуватися у файлах образів дисків, використовуваних в Macintosh при пересилці файлів. Файли образів дисків нагадують zip -файли у Windows або tar -файли в UNIX. Їх вміст зберігається у вигляді файлової системи, яка може знаходитися в розділі.

Архітектура системи розділів в Apple є вдалим компромісом між складністю розділів DOS і обмеженою кількістю розділів в BSD. Розділ DOS може описувати довільну кількість розділів, а структури даних зберігаються в суміжних секторах диска. Приведемо загальний огляд розділів Apple, детально опишемо їх структури даних і способи отримання детальної інформації.

 



Поделиться:


Последнее изменение этой страницы: 2016-09-19; просмотров: 302; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.204.24.82 (0.1 с.)