Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМСС / HDD / RECOVER.doc
Скачиваний:
23
Добавлен:
10.12.2013
Размер:
386.05 Кб
Скачать

Прослеживание списка разделов диска

В операционной системе MS-DOS первичный раздел должен быть единственным и активным, он используется как диск С: и из него выполняется загрузка операционной системы. В расширенном разделе программа FDISK создает логические диски D:, E: и так далее.

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

Таблица логических дисков имеет формат, аналогичный таблице разделов диска, но содержит только два элемента.

Один из них указывает на первый сектор логического диска, он имеет значение типа раздела 1 или 4 (для MS-DOS). Второй элемент может иметь значение типа раздела 5 (для MS-DOS) или 0. Если этот код равен 5, то элемент указывает на следующую таблицу логических дисков. Если код системы равен 0, то соответствующий элемент не используется. Выше мы приводили коды первичных и расширенных разделов для разных операционных систем.

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

Для таблицы логических дисков имеется отличие в использовании полей границ логических дисков. Если раздел первичный, эти границы вычисляются относительно начала расширенного раздела. Для расширенных разделов используется абсолютная адресация (относительно физического начала диска).

При помощи кнопки Next Partition (рис. 2) Вы можете просмотреть весь список таблиц логических дисков.

Проверка таблицы разделов при помощи программы diskedit

Упомянутая ранее программа Microsoft Disk Probe работает только в среде операционных систем Microsoft Windows NT и Microsoft Windows 2000. Что же касается MS-DOS и Microsoft Windows 95/98, то здесь для анализа системных структур диска мы рекомендуем редактор DISKEDIT из пакета Norton Utilities. Лучше всего записать эту программу на системную дискету. Только при загрузке с такой дискеты Вы сможете исследовать зараженную вирусами или разрушенную файловую систему, когда MS-DOS не загружается с жесткого диска.

Запустив DISKEDIT, воспользуйтесь меню Object. Для начала выберите из этого меню строку Drive. Если на физическом жестком диске имеются исправные разделы с определенными в них логическими дисками, на экране появится список логических дисков.

Если файловая система разрушена до такой степени, что невозможно выполнить загрузку операционной системы с диска, а при ее загрузке с дискеты не видно ни одного логического диска, при выборе строки Drive вам будет показан список физических дисков (рис. 3).

Рис. 3. Выбор физического диска в программе DISKEDIT

Для просмотра самого первого сектора физического диска, содержащего главную загрузочную запись и таблицу разделов, выберите физический диск Hard Disk 1 и нажмите кнопку OK. После этого на экране появится содержимое искомого сектора в виде дампа. Сектор имеет размер 512 байт, поэтому на одном экране его содержимое не помещается. Вы можете нажать клавишу PgDn и посмотреть вторую часть сектора.

На что здесь нужно обратить внимание?

В начале сектора находится главная загрузочная запись. Она, как мы уже говорили, является программой. При наличии достаточного опыта Вы можете ее дизассемблировать и исследовать. В любом случае следует проверить длину программы. Эта длина не должна быть очень большая - после программы загрузки до начала таблицы разделов должны располагаться нулевые байты. Кроме того, внутри программы загрузки должны быть сообщения Invalid Partition table, Error loading operating system и Missing operating system (для русских версий операционных систем эти сообщения будут на русском языке).

Что же касается второй части самого первого сектора жесткого диска, в ней должна находиться таблица разделов диска.

Последние два байта должны содержать признак таблицы разделов (сигнатуру) - шестнадцатеричное значение 0хAA55.

Вы можете выполнить анализ таблицы разделов диска, пользуясь приведенной выше информацией о ее формате. Напомним, что таблица располагается в первом секторе диска со смещением 0x1BE. Однако намного удобнее воспользоваться для анализа этой таблицы форматным просмотром редактора DISKEDIT.

Установите курсор (мышью или клавишами перемещения курсора) на байт со смещением 0x1BE, который соответствует началу таблицы разделов. Затем в меню View выберите строку as Partition Table. На экране появится таблица разделов диска в отформатированном виде (рис. 4).

Рис. 4. Просмотр таблицы разделов диска

В столбце System отображается информация о типе разделов. Она строится на основе анализа поля типа раздела, хранящегося в соответствующей строке таблицы разделов. Если раздел активен, в столбце Boot для него указана строка Yes, если нет - строка No.

Столбцы Starting Location и Ending Location в полях Side, Cylinder и Sector содержат в расшифрованном виде информацию о расположении самого первого и самого последнего секторов раздела.

Номер относительного сектора, с которого начинается раздел, Вы можете узнать из столбца Relative Sectors, а общее количество секторов - в столбце Number of Sectors.

Полученную информацию о границах разделов имеет смысл сравнить с параметрами жесткого диска, полученными с помощью программы BIOS Setup, так как вирусы могут прятать свое тело в секторах диска, расположенных в конце диска и не распределенных ни одному разделу. Однако при этом следует учитывать, что современные дисковые контроллеры способны выполнять логическую адресацию блоков (режим LBA), искажающую полученную картину.

Поясним сказанное на примере.

В одном из наших компьютеров установлен диск, имеющий 1057 дорожек и 16 головок. На каждой дорожке расположено 63 сектора размером 512 байт. При этом общий объем диска составляет 520 Мбайт. Именно эти параметры нам сообщила программа BIOS Setup.

Программа FDISK определила, что на диске имеется два раздела, размером 300 и 219 Мбайт, а диск используется на 100 процентов. В то же время программа DISKEDIT для этого диска показывает, что последний сектор последнего раздела расположен на дорожке с номером 526.

На первый взгляд, тут что-то не так: программа BIOS Setup сообщает нам, что на диске имеется 1057 дорожек и 16 головок, а в таблице разделов для последнего сектора последнего раздела мы видим совсем другие значения: этот сектор расположен на 526 дорожке, а номер головки равен 31!

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

Соседние файлы в папке HDD