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

       

Проверка загрузочного сектора


Адрес загрузочного сектора логического диска нетрудно найти в таблице логических дисков (рис. 6.16). В загрузочном секторе логического диска находится программа начальной загрузки операционной системы. Эта программа загружается в оперативную память загрузчиком, расположенным в главной загрузочной записи MBR.

Назначение программы, расположенной в загрузочном секторе логического диска - загрузка операционной системы, находящейся на этом логическом диске.

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

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

Формат загрузочного сектора зависит от операционной системы и даже от версии операционной системы. Мы рассмотрим формат этого сектора для версий MS-DOS, более ранних, чем 4.0, и для современных версий, таких как 6.22.

Tchechen.1909, 1912, 1914, 3604

Очень опасные резидентные шифрованные вирусы (вирус Tchechen.3604 - полиморфный).

При старте вирусы данной группы (кроме вируса Tchechen.3604) считывают  второй сектор жесткого диска и записывают в него слово "МИР:" и число 4, которое будет являться счетчиком запусков инфицированных программ.

Потом вирусы пытаются найти в ПЗУ BIOS текстовые строки Megatrends, AWARD. Если это им удается, то вирусы выключают в CMOS-памяти параметр Virus Warning on Boot (контроль записи в загрузочный сектор).
Но следует отметить, что при поиске этих двух слов вирусы никогда не смогут найти слово AWARD.

При достижении счетчиком во втором секторе нулевого значения вирусы заменяют слово "МИР:" и помещают в главную загрузочную запись MBR жесткого диска "троянский" код.

Этот код при загрузке операционной системы самостоятельно передает управление активному загрузочному сектору жестого диска, но примерно через месяц (10 дней для вируса Tchechen.3604) после записи данного кода в MBR уничтожает содержимое всего первого жесткого диска. После чего автором вируса планировался вывод на экран текста, который мы здесь не приводим.



Вирус Tchechen.3604 не заражает программы, имя которых начинается с символов WE, AD, AI, CO, DR, AV, TB, CH. Вирусы Tchechen.1914, 3604 неработоспособны на процессоре Pentium

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

Перед исследованием загрузочной записи вы должны при помощи команды VER определить версию операционной системы MS-DOS, установленной в компьютере. Для версий MS-DOS, более ранних чем 4.0, формат загрузочной записи приведен ниже:

Смещение, байт

Размер, байт

Описание

0

3

Команда JMP xxxx (переход на программу начальной загрузки)

3

8

Название фирмы-изготовителя операционной системы и версия, например: IBM  4.0

0Bh

13

Блок параметров BIOS (BPB)

18h

2

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

1Ah

2

Количество головок

1Ch

2

Количество скрытых секторов (эти секторы могут использоваться для схемы разделения физического диска на разделы и логические диски)

В самом начале загрузочного сектора располагается команда внутрисегментного перехода JMP.


Она нужна для обхода форматированной зоны сектора и передачи управления загрузочной программе, располагающейся со смещением 1Eh.

Название фирмы-изготовителя не используется операционной системой и представляет из себя текстовую строку длиной 8 байт.

Со смещением 0Bh располагается блок параметров BIOS, который обычно обозначается как BPB. Этот блок содержит некоторые характеристики логического диска, такие как количество секторов в одном кластере, общее количество секторов и т. д. Формат блока BPB будет описан позже.

Поля загрузочного сектора со смещениями 18h и 1Ah содержат, соответственно, количество секторов на дорожке и количество головок. Поле со смещением 1Ch содержит количество "скрытых" секторов, которые не принадлежат ни одному логическому диску. Эти секторы могут содержать таблицу разделов диска или таблицы логических дисков.

Для современных версий MS-DOS загрузочный сектор имеет другой формат:

Смещение, байт

Размер, байт

Описание

0

3

Команда JMP xxxx (переход на программу начальной загрузки)

3

8

Название фирмы-изготовителя операционной системы и версия

0Bh

25

Extended BPB - расширенный блок параметров BIOS

24h

1

Физический номер устройства (0 - накопитель на гибком магнитном диске НГМД, 80h - жесткий диск)

25h

1

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

26h

1

Символ ')' - признак расширенной загрузочной записи Extended BPB

27h

4

Серийный номер диска (Volume Serial Number), создается во время форматирования диска

2Bh

11

Метка диска (Volume Label)

36h

8

Текстовая строка 'FAT12   ' или 'FAT16   ', которая указывает на формат таблицы размещения файлов FAT

Первые два поля имеют то же назначение, что и в загрузочной записи старых версий MS-DOS.

Поле со смещением 26h содержит символ ')'. Этот символ означает, что используется формат расширенной загрузочной записи и, соответственно, расширенный блок параметров BIOS Extended BPB.

Серийный номер диска формируется во время форматирования диска на основе даты и времени форматирования.


Поэтому можно считать, что все диски и дискеты имеют разные серийные номера.

Метка диска формируется при форматировании и может быть изменена командой LABEL операционной системы MS-DOS. Одновременно метка диска помещается в корневой каталог в виде специального дескриптора. О формате каталогов и дескрипторов, а также о формате таблицы размещения файлов FAT мы расскажем позже.

Теперь о блоке параметров BIOS BPB и расширенном блоке параметров BIOS Extended BPB.

Для версий MS-DOS, более ранних чем 4.0, блок BPB имеет следующий формат:

Смещение, байт

Размер, байт

Описание

0

 2

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

2

 1

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

3

 2

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

5

 1

Количество таблиц FAT

6

 2

Максимальное количество дескрипторов файлов в корневом каталоге диска

8

 2

Общее количество секторов на носителе данных (в разделе MS-DOS)

0Ah

1

Байт-описатель среды носителя данных

0Bh

2

Количество секторов, занимаемых одной копией FAT

Расширенный блок параметров BIOS состоит из обычного блока BPB и дополнительного расширения:

Смещение, байт

Размер, байт

Описание

0

 2

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

2

 1

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

3

 2

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

5

 1

Количество таблиц FAT

6

 2

Максимальное количество дескрипторов файлов в корневом каталоге диска

8

 2

Общее количество секторов на носителе данных (в разделе MS-DOS)

0Ah

1

Байт-описатель среды носителя данных

0Bh

2

Количество секторов, занимаемых одной копией FAT

0Dh

2

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

0Fh

2

Количество магнитных головок

11h

2

Количество скрытых секторов для раздела, который по размеру меньше 32 Мбайт

13h

2

Количество скрытых секторов для раздела, превышающего по размеру 32 Мбайт

15h

4

Общее количество секторов на логическом диске для раздела, превышающего по размеру 32 Мбайт

<


Байт- описатель среды может содержать следующие значения, характеризующие носитель данных:

Значение

Количество сторон

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

Диаметр, дюймы

Емкость, Кбайт

0F0h

2

18

3,5

1440

- “ -

2

36

3,5

2880

- “ -

2

15

5,25

1200

0F8h

-

-

Жесткий диск любой емкости

0F9h

2

9

3,5

720

- “ -

2

15

5,25

1200

0FAh

1

8

5,25

320

0FBh

2

8

3,5

640

0FCh

1

9

5,25

180

0FDh

2

9

5,25

360

0FEh

1

8

5,25, 8

160

0FFh

2

8

5,25, 8

320

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

Для форматного просмотра блока параметов BPB (или расширенного блока параметров Extended BPB, в зависимости от версии MS-DOS) удобно использовать программу DISKEDIT.EXE. При этом вы можете найти загрузочную запись двумя способами.

Во-первых, можно выбрать из меню Object строку Boot Record (выбрав предварительно нужный логический диск при помощи строки Drive того же меню). При этом вы сразу же окажитесь в режиме форматного просмотра блока параметров BIOS выбранного вами диска (рис. 6.18).



Рис. 6.18. Режим форматного просмотра загрузочной записи

Во-вторых, если логические диски недоступны, но вам удалось считать таблицу разделов или таблицу логических дисков, вы можете перейти к просмотру загрузочной записи, указав ее физический адрес. Для этого из меню Object надо выбрать строку Physical Address (как это было описано раньше). На экране появится дамп первой части загрузочного сектора (рис. 6.19).



Рис. 6.19. Первая часть дампа загрузочной записи

Нажав клавишу <PgDn>, вы можете перейти к просмотру второй части загрузочного сектора (рис. 6.20).



Рис. 6.20 Вторая часть дампа загрузочной записи

При помощи строк as Boot Record и as Hex меню View вы можете перейти, соответственно, к форматному и неформатному режиму просмотра загрузочного сектора.



Формирование загрузочной записи и блока параметров BIOS происходит при форматировании логического диска (например, командой FORMAT). Если с помощью программы FDISK удалить логический диск, а потом создать на его месте новый такого же размера, блок BPB окажется разрушенным. При этом вам придется отформатировать логический диск заново.

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

Детальный анализ изменений, внесенных вирусом в загрузочную запись, предполагает дизассемблирование загрузочной записи и потому доступно только опытным программистам. Тем не менее можно проверить параметры, записанные в блоке BPB и выполнить визуальную проверку загрузочной программы. В теле этой программы не должно быть, например, никаких посторонних текстовых строк.

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

Для распечатки выберите из меню Tools строку Print Object as и в появившейся на экране диалоговой панели выберите строку Boot Record (рис. 6.21). Затем нажмите кнопку OK.



Рис. 6.21. Форматная печать содержимого загрузочного сектора

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


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