Pro Вирусы.

Инфицирование файловых объектов.

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

Pro Вирусы.

Рис. 12. Один из возможных алгоритмов заражения файловых объектов вирусом.

Существует вариант заражения, при котором оригинальный файл, наоборот, в том или ином виде сохраняется внутри вредоносной программы и в момент запуска вируса отображается в память компьютера или сохраняется в какой-либо папке на диске и запускается оттуда. Схожий алгоритм использовали, например, вирусы семейства Neshta. В процессе заражения машины вирус сохранял свою копию в папке установки Windows под именем svchost.com, а затем изменял параметр ключа системного реестра [HKCR\exefile\shell\open\command], записывая в него значение “(default)” = “%WinDir%\svchost.com “%1” %*”. В результате при попытке запуска пользователем любой программы на инфицированном компьютере в первую очередь запускалось тело вируса из файла svchost.com, которому передавалось имя нужного пользователю приложения в виде параметра. Если этот исполняемый файл еще не был инфицирован ранее, Neshta сохранял его имя в специальном журнале для последующего заражения и запускал оригинальную программу. Если же пользователь пытался запустить ранее зараженный файл, вирус, получив управление, распаковывал оригинальный исполняемый файл нужной пользователю программы, помещал его во временную папку текущего пользователя Windows и запускал оттуда.

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

Pro Вирусы.

Рис. 13. Альтернативный алгоритм заражения файловых объектов вирусом.

Существуют и альтернативные методы заражения, используемые злоумышленниками значительно реже. Например, известно семейство вредоносных программ (иногда их называют общим термином «вирус-компаньон»), действовавших достаточно просто: они сохраняли свою копию в той же папке, где расположен исходный файл приложения, причем с тем же самым именем, а оригинальный исполняемый файл переименовывали. При запуске такой программы пользователем сначала запускался вирус, а после того, как он отрабатывал, управление передавалось оригинальному приложению.