Осторожно компьютерные вирусы

       

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


Наиболее удобное, на наш взгляд, средство анализа логических структур файловой системы - редактор диска DISKEDIT.EXE, который входит в пакет Norton Utilities. Лучше всего записать эту программу на системную дискету, так как только при загрузке с такой дискеты вы сможете исследовать файловую систему, зараженную вирусами или разрушенную файловую систему, когда DOS не загружается с жесткого диска.

Меню Object предоставляет вам широкие возможности выбора структуры для просмотра (рис. 6.6).

Рис. 6.6. Меню Object программы DISKEDIT.EXE из пакета Norton Utilities

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

Рис. 6.7. Просмотра списка логических дисков

В данном случае для просмотра доступны логические диски C: и D:, расположенные, соответственно, в основном и расширенном разделах.

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

Рис. 6.8. Просмотр списка физических дисков, установленных в компьютере

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



Рис. 6.9. Просмотр содержимого первого сектора первого физического диска

Сектор имеет размер 512 байт, поэтому на одном экране его содержимое не помещается. Вы можете нажать клавишу <PgDn> и посмотреть вторую часть сектора (рис. 6.10).

Рис. 6.10. Прсомотр второй части первого сектора

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

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

Несмотря на то что существуют загрузочные вирусы, лишь слегка изменяющие главную загрузочную запись, во многих случаях вы сможете заметить следы нападения, просто взглянув на дамп первого сектора жесткого диска и сравнив его визуально с изображенным на рис. 6.9. Особенно подозрительно, если помимо перечисленных выше текстовых сообщений в теле программы загрузки присутствуют какие-либо еще сообщения.

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

Последние два байта должны содержать признак таблицы разделов (сигнатуру) - значение 0AA55h. Обратите внимание, что байты сигнатуры привдедны в обратном порядке - байт с младшим значением находится по младшему адресу. Это особенность архитектуры процессоров фирмы Intel.

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

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



Рис. 6.11. Меню View программы DISKEDIT.EXE из пакета Norton Utilities

На экране появится таблица разделов диска в отформатированном виде (рис. 6.12).



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

В столбце System отображается информация об операционной системе, которая строится на основе анализа поля кода операционной системы элемента раздела.


Если раздел активен, в столбце Boot для него указана строка Yes, если нет - строка No.

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

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

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

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

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

Программа FDISK.EXE определила, что на диске имеется два раздела, размером 300 и 219 Мбайт, а диск используется на 100 процентов (рис. 6.13).



Рис. 6.13. Просмотр параметров разделов диска программой FDISK.EXE

В то же время, как видно из рис. 6.12, программа DISKEDIT.EXE для этого диска показывает, что последний сектор последнего раздела расположен на дорожке с номером 526.

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

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

Зачем это нужно?

Из-за внутренних ограничений операционная система DOS не может работать с дорожками, номер которых превышает значение 1023. Однако современные дисковые накопители обладают значительной емкостью (порядка 1 - 4 Гбайт и даже больше), поэтому в них приходится делать очень много дорожек. Другие операционные системы, такие как IBM OS/2, Microsoft Windows NT, UNIX или Novell NetWare, не имеют ограничений на количество адресуемых дорожек диска. Что же касается DOS, то без дополнительных мер максимальный размер раздела диска не будет превышать примерно 500 Мбайт.

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


Содержание раздела