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

       

Вирусы, внедряющиеся в файлы


Самую большую группу составляют вирусы, внедряющиеся в файлы. Они могут заражать практически любые файлы, содержащие выполнимый код. В первую очередь это файлы программ, имеющие расширения COM и EXE. Но не только они подвергаются нападению вирусов. Файлы оверлеев (расширения имен файлов OVL, OVI, OVR и др.), драйверов (SYS) также могут быть инфицированы.

Существует три большие группы файлов, которые непосредственно может запускать пользователь, вводя их имя в системном приглашении операционной системы MS-DOS. К ним относятся выполнимые файлы в формате COM и EXE, а также командные файлы, имеющие расширение BAT.

Выполнимые файлы в формате COM и EXE в корне отличаются от командных файлов с расширением BAT. В отличие от последних, они состоят из команд центрального процессора, то есть содержат машинные инструкции. Вместе с командами процессора в выполнимых файлах могут размещаться данные: тексты сообщений, числовые константы и т. д. Чтобы создать выполнимый файл, используют специальные программы-трансляторы и редакторы связей.

Файлы в форматах COM и EXE отличаются в основном только своим форматом. Выполнимый файл COM состоит из одних инструкций процессора и данных. Размер COM файла обычно не превышает 65536 байт. Естественно это накладывает большие ограничения на программы в этом формате.

Когда вы запускаете программу в формате COM, операционная система считывает файл программы с жесткого диска или дискеты и размещает его в оперативной памяти, выбирая для этого свободный участок. Затем операционная система передает управление на самую первую команду загруженной программы. После окончания работы программы она возвращает управление операционной системе.

Файлы в формате EXE имеют значительно более сложную структуру, чем файлы COM. За счет этого они могут иметь больший размер, превышающий 65536 байт. Особенности архитектуры процессоров, совместимых с Intel 8080 и Intel 8086 требуют *****

Кроме процессорных команд и данных, файлы в формате EXE содержат специальный заголовок, расположенный в самом начале файла.
Заголовок EXE- файлов имеет сложный формат. На наш взгляд, его точный формат представляет интерес в основном для авторов вирусов. Поэтому мы приведем здесь только самые общие сведения.

Первое поле заголовка содержит сигнатуру EXE-файла - два символа MZ. Вы можете просмотреть любой EXE-файл в текстовом редакторе. Два первых символа всегда будут MZ. Некоторые выполнимые файлы могут иметь другую сигнатуру - ZM. Они также распознаются операционной системой как файлы в формате EXE.

Затем в заголовке файла следует таблица настройки. Когда пользователь запускает EXE-файл, операционная система загружает его в оперативную память, а затем настраивает его в соответствии с таблицей настройки. Только после этого управление передается на первую команду программы, адрес которой также записан в заголовке файла. Подробно формат заголовка EXE-файла описан в 18 томе из серии книг “Библиотека системного программиста”.

Командные BAT-файлы - это обычные текстовые файлы, состоящие из команд операционной системы. Для создания такого файла достаточно иметь любой текстовый редактор, который может сохранять файлы в обычном текстовом формате. В качестве примера можно привести текстовый редактор Notepad, входящий в состав операционной системы Windows.

Кроме команд операционной системы и вызовов других программ, командный файл может содержать строки комментариев. Такие строки обозначаются командой REM и полностью игнорируются. Вы можете воспользоваться строками комментариев, чтобы добавить текстовое описание к командному файлу или чтобы временно запретить выполнение отдельных команд такого файла:



REM Подключаем драйверы локальной сети

lsl.com

ne2000.com

ipxodi.com

netx /c=c:\net\net.cfg

REM login - команда временно отключена -

Когда вы запускаете командный файл, операционная система считывает его строка за строкой и выполняет прочитанные команды (рис. 1.4).



Рис. 1.4. Программа до заражения

Заражая файл, вирусы тем или иным способом записывают свой код внутрь выполняемого файла и изменяют его таким образом, чтобы после запуска файла управление получил код вируса (рис. 1.5).


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

Далее вирус отрабатывает свои задачи: заражает другие файлы, устанавливает в памяти собственные резидентные модули и выполняет другие функции. Затем вирус, как правило, передает управление зараженной программе и далее она исполняется как обычно.



Рис. 1.5. Запуск зараженной программы

Обычно изменения в зараженных файлах видны невооруженным глазом в любом редакторе, в который можно загрузить выполнимый файл для просмотра. Кроме того заметно увеличение длинны зараженного файла. Некоторые вирусы, находясь резидентными в памяти, могут маскироваться. В этом случае изменения в зараженном файле будут незаметны.

На рисунках 1.6 и 1.7 мы привели участки дампа файла MOUSE.COM до и после его заражения вирусом OneHalf. Без труда можно заметить, что зараженный файл длиннее незараженного на 3544 байт.



Рис. 1.6. Дамп файла MOUSE.COM

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



Рис. 1.7. Дамп файла MOUSE.COM, зараженного вирусом OneHalf


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