Parasitic-вирусы

К паразитическим относятся все файловые вирусы, которые при распространении своих копий обязательно изменяют содержимое файлов, оставляя сами файлы при этом полностью или частично работоспособными. Основными типами таких вирусов являются вирусы, записывающиеся в начало файлов (prepending), в конец файлов (appending) и в середину файлов (inserting). В свою очередь, внедрение вирусов в середину файлов происходит различными методами — путем переноса части файла в его конец или внедрения в заведомо неиспользуемые данные файла (cavity-вирусы).

Внедрение вируса в начало файла. Известны два способа внедрения паразитического файлового вируса в начало файла. Первый способ (см. рис. 2.1) заключается в том, что вирус переписывает начало заражаемого файла в его конец, а сам копируется на освободившееся место. При заражении файла вторым способом (см. рис. 2.2) вирус создает в оперативной памяти свою копию, дописывает к ней заражаемый файл и сохраняет полученную конкатенацию на диск. Некоторые вирусы при этом дописывают в конец файла блок дополнительной информации (например, вирус Jerusalem по этому блоку отличает зараженные файлы от незараженных).

Рис. 2.1 Внедрение вируса начало файла первым способом


Рис. 2.2 Внедрение вируса в начало файла вторым способом


Внедрение вируса в начало файла применяется в подавляющем большинстве случаев при заражении ВАТ- и СОМ-файлов в системе DOS. Известно несколько вирусов, записывающих себя в начало ЕХЕ-файлов операционных систем DOS, Windows и даже Linux. При этом вирусы, чтобы сохранить работоспособность программы, либо лечат зараженный файл, повторно запускают его, ждут окончания его работы и снова записываются в его начало (иногда используется временный файл, в который записывается обезвреженный файл), либо восстанавливают код программы в памяти компьютера и настраивают необходимые адреса в ее теле (т. е. дублируют работу ОС).

Внедрение вируса в конец файла. Наиболее распространенным способом внедрения вируса в файл является дописывание вируса в его конец (см. рис. 2.3). При этом вирус изменяет начало файла таким образом, что первыми выполняемыми командами программы, содержащейся в файле, являются команды вируса.

В DOS СОМ-файле в большинстве случаев это достигается изменением его первых трех (или более) байтов на коды инструкции JMP Loc_Virus (или в более общем случае — на коды программы, передающей управление на тело вируса). DOS ЕХЕ-файл переводится в формат СОМ-файла и затем заражается как СОМ-файл либо модифицируется заголовок файла. В заголовке DOS ЕХЕ-файла изменяются значения стартового адреса (CS:IP) и длины выполняемого модуля (файла), реже — регистры — указатели на стек (SS:SP), контрольная сумма файла и т. д. В выполняемых файлах Windows и OS/2 (NewEXE — NE, РЕ, LE, LX) изменяются поля в NewEXE-заголовке. Структура этого заголовка значительно сложнее заголовка DOS ЕХЕ-файлов, поэтому изменению подлежит большее число полей — значение стартового адреса, количество секций в файле, характеристики секций и т. д. Дополнительно к этому длины файлов перед заражением могут увеличиваться до значения, кратного параграфу (16 байт) в DOS или секции в Windows и OS/2 (размер секции зависит от параметров заголовка ЕХЕ-файла).

Рис. 2.3 Внедрение вируса в конец файла


Вирусы, внедряющиеся в DOS SYS-файлы, приписывают свои коды к телу файла и модифицируют адреса программ стратегии (Strategy) и прерывания (Interrupt) заражаемого драйвера (встречаются вирусы, изменяющие адрес только одной из программ). При инициализации зараженного драйвера (см. рис. 2.4) вирус перехватывает соответствующий запрос ОС, передает его драйверу, ждет ответа на этот запрос, корректирует его и остается в одном блоке в оперативной памяти вместе с драйвером. Такой вирус может быть чрезвычайно опасным и живучим, так как он внедряется в оперативную память при загрузке DOS раньше любой антивирусной программы, если она, конечно, тоже не является драйвером.

Рис. 2.4


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: