Учу вирус или нет
На написание этой статьи меня сподвигло сразу несколько событий.
- На исследование попался компьютер с вредоносами, маскирующимися под этот процесс – svchost.exe.
- На другом компьютере система дико тормозила из-за того, что svchost.exe потреблял очень много памяти (практически всю доступную), суммарное потребление памяти доходило до 96%, куча приложений выгружалась в подкачку – представляете тупняки системы?
Что такое svchost.exe
Данный процесс является основным процессом для запуска различных служб системы Windows. Помните раздел “Службы”? Там и служба сети и обозреватель компьютеров и служба обновлений и ещё добрых несколько десятков сервисов. Большая часть из них должна быть представлена в системе через процесс как раз svchost.exe.
Многие службы представлены через процесс svchost.exe
Почему в системе несколько процессов svchost.exe
Как раз потому, что одновременно функционирует множество служб.
Несколько процессов svchost.exe
Если процессы не отображаются, в диспетчере задач нажмите кнопку “Отображать процессы всех пользователей“, т.к. все эти процессы работают от имени других пользователей (например “NT_AUTHORITY\система“). И также обратите внимание на командную строку, с которой запущен процесс – там есть полный путь. Если там что-то отличное от \Windows\System32\svchost.exe – это повод уделить больше внимания такому процессу, т.к. под этот процесс часто маскируется различное вредоносное программное обеспечение.
P.S. Если вам не видно столбец “командная строка” или иной, нажмите в меню “Вид -> Выбрать столбцы” и отметьте нужные галочки напротив имён столбцов.
svchost.exe вирус или нет?
Давайте сделаем так, вот ниже будет ряд вопросов – если вы ответили “нет” на какие-либо из них, тогда стоит обратить пристальное внимание. И чем больше таких ответов, тем более пристальное внимание нужно уделить.
- Вы можете запустить диспетчер задач и перейти на вкладку “Процессы”?
- Вы видите несколько процессов svchost.exe при отображении процессов всех пользователей?
- Имена всех этих процессов выглядят одинаково (именно “svchost.exe” без всяких “0” вместо “o” и т.д.)?
- Параметры запуска у них схожи? “-k LocalService” или что-то типа такого…
- Все процессы запущены из одного каталога? “\Windows\system32\” по умолчанию.
- Все процессы svchost.exe запущены от системных учётных записей?
svchost вирус или нет
Конечно, это не все возможные случаи, но большинство троянцев таким образом отсеять можно. Идём дальше.
svchost.exe грузит процессор или память
Вот это очень распространённая проблема. И ход действий здесь весьма интересен.
-
Нужно определить имя службы, которая потребляет системные ресурсы.
Итак, пойдём по шагам. Для Windows 7 нужно отобразить процесс “ИД Процесса” или “pID” – отобразит в диспетчере задач идентификатор процесса, чтобы можно было однозначно идентифицировать и отличать один svchost.exe от другого.
Для Windows 8, например, в диспетчере все процессы уже сгруппированы по PID-ам.
Процессы сгруппированы по PID
Запоминаем PID и для Windows 7 переходим на вкладку “Службы”.
Службы по PID процессов
Там упорядочиваем по PID и ищем наш злополучный PID, изучаем список служб…
Извечный вопрос “Какие службы нужны, а какие можно смело отключить?” – В Интернете миллион инструкций, мой ответ – если вы твёрдо уверены, что это вам не надо – остановите, поработайте. Запишите, что отключили. Все конфигурации различные, кто-то работает без сети вообще – может отключить многое. Кто-то без принтера, поиска файлов, оформления – отключает другое.
Лично по своему опыту – компьютер задышал посвободнее, когда я отключил службу обновления, брандмауэр, защитник Windows (т.к. использую стороннее антивирусное решение), службу индексирования и темы. Также можно безопасно отключить и другие, но лучше почитайте соответствующие мануалы. Список служб ведь не такой большой – нужно смотреть только те, которые относятся к данному процессу, который потребляет много ресурсов.
Практика показала, что такая оптимизация достаточно эффективна. Ну а некоторые службы можно не отключать, а перевести на ручной запуск.
После такого воздействия файлы запустить становится невозможно, а сама операционная системы немедленно сообщает пользователю, что искомый объект не найден, хотя на самом деле с жесткого диска он никуда не девается.
Нюансы воздействия угрозы на компьютерную систему
То, что вирусы вроде Some_exe.exe или его аналоги (например, разновидности Virus.Win32.Expiro) нацеливаются исключительно на исполняемые файлы, - далеко не самое страшное, что может подстерегать пользователя современного компьютера. Большинство таких угроз обычно маскируется под системные процессы, например, svchost.exe, и напрямую на EXE-файлы могут не воздействовать, предоставляя это право некоторым антивирусам. Да-да! Именно так! При первичном заражении подвергшийся атаке исполняемый объект начинает распознаваться штатным сканером уже как вирус, после чего может не только блокироваться, но еще и удаляться антивирусом.
На всякий случай проверьте все копии процесса svchohst.exe на предмет расположения отвечающего за него файла через меню ПКМ (оригинальный объект должен находиться исключительно в папке System32 и нигде более). Такие копии тоже нужно завершить и, если есть возможность, сразу удалить подозрительные вирусные объекты на жестком диске (при условии, что они не будут заблокированными).
Откат системы
Проверка антивирусным ПО
В принципе, для нейтрализации вирусов этого типа можно воспользоваться и портативными утилитами, среди которых наибольшей функциональностью отличаются приложения KVRT и Dr. Web CureIt! при условии немедленного обновления антивирусных баз сразу же после запуска апплетов.
Однако самой мощной программой, которая позволяет находить и удалять вирусы из всех возможных локаций в компьютерной системе, включая даже оперативную память, является дисковая утилита Kaspersky Rescue Disk, при помощи которой можно загрузиться еще до старта операционной системы и выполнить полное сканирование с последующим лечением.
Проверка раздела автозагрузки
Поиск и удаление компонентов вируса на жестком диске
Примечание: для наиболее результативного поиска рекомендуется сразу включить отображение скрытых файлов и каталогов, поскольку в большинстве случаев вирусные угрозы скрываются именно в таких локациях и представлены именно в таком виде.
Действия в системном реестре
В редакторе реестра (regedit) в первую очередь необходимо обратить внимание на папки автозагрузки Run и RunOnce в ветках HKLM и HKCU (их можно найти через обычный поиск при помощи сочетания Ctrl + F). В этих разделах следует удалить все подозрительные записи и ключи.
Кроме того, в ветке HKLM через разделы SOFTWARE, Microsoft и WindowsNT следует найти папку CurrentVersion с подкаталогом Winlogon, где для параметра Shell должно быть указано значение Explorer.exe, а для ключа Userinit – полный путь к одноименному исполняемому файлу (Userinit.exe) в директории System32. Если значения отличаются, их следует изменить. И только теперь можно выполнить полный рестарт системы. По идее, от вирусов указанного типа и следа не останется.
Заключение
Таковы вкратце основные методы поиска и нейтрализации вирусных угроз, воздействующих на исполняемые файлы. Подводя краткий итог всему вышесказанному, остается сказать, что при ручном удалении угроз, если они по каким-либо причинам не смогут быть нейтрализованы антивирусными средствами, после их удаления и полной перезагрузки системы на всякий случай все равно следует произвести сканирование компьютера, но при этом желательно сменить сканер или использовать несколько однотипных программ от разных разработчиков.
В этой статье рассказано о вирусах, заражающих ЕХЕ-файлы. Приведена классификация таких вирусов, подробно рассмотрены алгоритмы их работы, отличия между ними достоинства и недостатки.
Вирусы — это хорошая гимнастика для ума, хотя многие думают, что написать вирус на языке высокого уровня весьма трудно. Это не совсем так. Писать на языке Pascal довольно легко, правда величина полученного кода вызывает благоговейный трепет.
Для каждого типа вирусов представлены исходные тексты с подробными комментариями.Также приведены основные сведения о структуре и принципах работы ЕХЕ-программы.
Структура и процесс загрузки ЕХЕ-программы
В отличие от СОМ-программ, ЕХЕ-программы могут состоять из нескольких сегментов (кодов, данных, стека). Они могут занимать больше 64Кбайт.ЕХЕ-файл имеет заголовок, который используется при его загрузке.Заголовок состоит из форматированной части, содержащей сигнатуру и данные, необходимые для загрузки ЕХЕ-файла, и таблицы для настройки адресов (Relocation Table). Таблица состоит из значений в формате сегмент:смещение. К смещениям в загрузочном модуле, на которые указывают значения в таблице, после загрузки программы в память должен быть прибавлен сегментный адрес, с которого загружена программа.
При запуске ЕХЕ-программы системным загрузчиком (вызовом функции DOS 4Bh) выполняются следующие действия:
1. Определяется сегментный адрес свободного участка памяти,размер
которого достаточен для размещения программы.
2.Создается и заполняется блок памяти для переменных среды.
3.Создается блок памяти для PSP и программы (сегментЮОООЬ — PSP;
В поля PSP заносятся соответствующие значения.
4.Адрес DTA устанавливается равным PSP:0080h.
5.В рабочую область загрузчика считывается форматированная часть
заголовка ЕХЕ-файла.
6.Вычисляется длина загрузочного модуля по формуле:
7.Определяется смещение загрузочного модуля в файле, равное
8.Вычисляется сегментный адрес (START_SEG) для загрузки -обычно это PSP+lOh.
9.Считывается в память загрузочный модуль (начиная с адреса
10.Для каждого входа таблицы настройки:
a)читаются слова I_OFF и I_SEG;
c)читается слово по адресу RELO_SEG:I_OFF;
d)к прочитанному слову прибавляется START_SEG;
e)результат запоминается по тому же адресу (RELO_SEG:I_OFF).
11.Распределяется память для программы в соответствии с МахМет
12.Инициализируются регистры, выполняется программа:
b) АХ=результат проверки правильности идентификаторов драйверов, указанных в командной строке;
ЕХЕ-вирусы условно можно разделить на группы, используя в качестве признака для деления особенности алгоритма. Вирусы, замещающие программный код (Overwrite) Такие вирусы уже стали раритетом. Главный их недостаток — слишком грубая работа. Инфицированные программы не исполняются, так как вирус записывается поверх программного кода, не сохраняя его. При запуске вирус ищет очередную жертву (или жертвы), открывает найденный файл для редактирования и записывает свое тело в начало программы, не сохраняя оригинальный код. Инфицированные этими вирусами программы лечению не подлежат.
Эти вирусы получили свое название из-за алгоритма размножения:
к каждому инфицированному файлу создается файл-спутник. Рассмотрим более подробно два типа вирусов этой группы:
Вирусы первого типа размножается следующим образом. Для каждого инфицируемого ЕХЕ-файла в том же каталоге создается файл с вирусным кодом, имеющий такое же имя, что и ЕХЕ-файл, но с расширением СОМ. Вирус активируется, если при запуске программы в командной строке указано только имя исполняемого файла. Дело в том, что, если не указано расширение файла, DOS сначала ищет в текущем каталоге файл с заданным именем и расширением СОМ. Если СОМ-файл с таким именем не найден, ведется поиск одноименного ЕХЕ-файла. Если не найден и ЕХЕ-файл, DOS попробует обнаружить ВАТ (пакетный) файл. В случае отсутствия в текущем каталоге исполняемого файла с указанным именем поиск ведется во всех каталогах, доступных по переменной PATH. Другими словами, когда пользователь хочет запустить программу и набирает в командной строке только ее имя (в основном так все и делают), первым управление получает вирус,код которого находится в СОМ-файле. Он создает СОМ-файл еще к одному или нескольким ЕХЕ-файлам (распространяется), а затем исполняет ЕХЕ-файл с указанным в командной строке именем. Пользователь же думает, что работает только запущенная ЕХЕ-программа.
Вирус-спутник обезвредить довольно просто — достаточно удалить
СОМ-файл.
Вирусы второго типа действуют более тонко. Имя инфицируемого
ЕХЕ-файла остается прежним, а расширение заменяется каким-либо
другим, отличным от исполняемого (СОМ, ЕХЕ и ВАТ), Например,
файл может получить расширение DAT (файл данных) или OVL (про-
граммный оверлей). Затем на место ЕХЕ-файла копируется вирусный код. При запуске такой инфицированной программы управление получает вирусный код, находящийся в ЕХЕ-файле. Инфицировав еще один или несколько ЕХЕ-файлов таким же образом, вирус возвращает оригинальному файлу исполняемое расширение (но не EХЕ, а СОМ, поскольку ЕХЕ-файл с таким именем занят вирусом), после чего исполняет его. Когда работа инфицированной программы закончена, ее запускаемому файлу возвращается расширение неисполняемого. Лечение файлов, зараженных вирусом этого типа, может быть затруднено,если вирус-спутник шифрует часть или все тело инфицируемого файла,а перед исполнением его расшифровывает.
Вирусы, внедряющиеся в программу (Parasitic) Вирусы этого вида самые незаметные: их код записывается в инфицируемую программу, что существенно затрудняет лечение зараженных файлов. Рассмотрим методы внедрения ЕХЕ-вирусов в ЕХЕ-файл.
Способы заражения ЕХЕ-файлов
Самый распространенный способ заражения ЕХЕ-файлов такой: в конец файла дописывается тело вируса, а заголовок корректируется (с сохранением оригинального) так, чтобы при запуске инфицированного файла управление получал вирус. Похоже на заражение СОМ-файлов, но вместо задания в коде перехода в начало вируса корректируется собственно адрес точки запуска программы. После окончания работы вирус берет из сохраненного заголовка оригинальный адрес запуска программы, прибавляет к его сегментной компоненте значение регистра DS или ES (полученное при старте вируса) и передает управление на полученный адрес.
Следующий способ — внедрение вируса в начало файла со сдвигом кода
Вирусы, замещающие программный код ( Overwrite ) Как уже говорилось, этот вид вирусов уже давно мертв. Изредка появляются еще такие вирусы, созданные на языке Assembler, но это, скорее, соревнование в написании самого маленького overwrite-вируса. На данный момент самый маленький из известных overwrite-вирусов написан Reminder’ом (Death Virii Crew group) и занимает 22 байта.
Алгоритм работы overwrite-вируса следующий:
1. Открыть файл, из которого вирус получил управление.
2. Считать в буфер код вируса.
4. Искать по маске подходящий для заражения файл.
5. Если файлов больше не найдено, перейти к пункту 11.
6. Открыть найденный файл.
7. Проверить, не заражен ли найденный файл этим вирусом.
8. Если файл заражен, перейти к пункту 10.
9. Записать в начало файла код вируса.
10. Закрыть файл (по желанию можно заразить от одного до всех фай-
лов в каталоге или на диске).
12. Завершить программу.
Ниже приведен листинг программы, заражающей файлы таким способом.
Читайте о симптомах, которые сигнализируют о наличии на компьютере вируса. Как на вирусы реагирует компьютер, антивирусная программа или браузер. Вредоносные программы или вирусы могут повергнуть ваш компьютер в хаос. Они могут деактивировать антивирусную программу и сделать компьютер уязвимым для другого вредоносного программного обеспечения, мешать нормальному функционированию компьютера или повредить файлы операционной системы.
Вирусы вымогатели шифруют данные пользователей таким образом, что их практически невозможно расшифровать или восстановить. Вирусы могут получить доступ к любым данным, будь то личные файлы, банковские данные или пароли пользователя, а также создавать двойники аккаунтов.
Что же делать чтобы защитить себя и компьютер от вирусов? Начать необходимо с установки антивирусной программы. Также не помешает освоить навыки безопасного пользования ПК. Частой причиной заражения компьютера вирусами или другим вредоносным ПО есть отсутствие компьютерной грамотности пользователя, которую также стоит подтянуть.
Новые виды вирусов и вредоносных программ появляются всё время, поэтому они не всегда могут определяются каждой антивирусной программой, по крайней мере до того момента пока не будут внесены в базу данных сигнатур вирусов. Такие свежие вирусы могут попасть в систему и пройти все программные средства защиты.
Если вы случайно скачали подозрительный файл, который содержит вирус или кликнули на вложении в email, ваша система может быть инфицирована такими вирусами как: Trojan, Rootkit, Worm, Backdoor, Junkware или Malware. Поэтому, прежде чем кликать на неизвестном файле или ссылке лучше подумать дважды и следить за тем, чтобы установленная на вашем компьютере антивирусная программа была с актуальными антивирусными сигнатурами.
Итак, как же определить, что ваш компьютер заражен вирусами? Вот несколько явных признаков, которые сигнализируют о том, что на компьютере присутствуют вирусы или другое вредоносное ПО:
А теперь детально:
Ваша антивирусная программа деактивирована (отключена).
Некоторые типы вредоносных программ могут деактивировать или отключить антивирусную программу или антивирусное решение для защиты интернет пользователей (internet security suite). В таком случае вредоносные программы могут свободно проникнуть на компьютер, украсть или повредить данные. Существует много типов вредоносного ПО, некоторые нацелены на повреждение или уничтожение данных, другие шифруют файлы и вымогают оплату за возобновление к ним доступа. Попытки переустановить или установить заново антивирусное ПО, такими вирусами могут также блокироваться. Установившись на компьютер, вирусы могут вносить изменения в реестр, которые будут блокировать установку антивирусных программ.
Антивирусная программа сообщает о наличии на компьютере вирусов.
Наилучшим способом определить наличие на компьютере вирусов есть наличие соответствующих сообщений антивирусной программы или брандмауэра. Брандмауэр – это мощный инструмент защиты, который контролирует всё что загружается на компьютер из Интернета и из компьютера в Интернет. Поэтому, лучше если на компьютере будут одновременно активированы и антивирусная программа, и брандмауэр.
Компьютер работает медленно или тормозит.
Если компьютер начал работать медленнее чем обычно или тормозить, это также является признаком того, что он заражен вредоносным ПО. Чтобы определить, что именно является причиной неправильной работы ПК достаточно открыть диспетчер задач и просмотреть список запущенных программ и процессов.
Если какое-то неизвестное приложение использует много ресурсов процессора, оно может и быть вирусом. Также, вирус может своей деятельностью использовать ресурсы жесткого диска. Такая активность вредоносных программ может значительно снизить производительность компьютера. Rootkit программы (вид вирусов) могут также влиять на продолжительность загрузки операционной системы во время включения компьютера или его отключения, а также быть причиной зависаний.
Браузер перенаправляет на другие сайты или не запускается.
Проблемы в работе браузера являются ключевым признаком того, что безопасность компьютера нарушена. Например, осуществляя поиск информации или сайта с помощью Google вы обнаруживаете, что, переходя по ссылке нужного сайта вы попадаете не на него, а на рекламный сайт, который вы не искали и никогда раннее на него не переходили. Браузер также может начать медленно работать или зависать, может появится большое количество надстроек или расширений, при наличии Интернет соединения браузер не может подключиться к сети, и т.д. Всё это свидетельствует о наличии вирусов или вредоносного ПО на компьютере.
Компьютер работает со сбоями или зависает во время перезагрузки.
Руткит или вирус могут стать причиной нестабильной работы операционной системы или даже вносить изменения в master boot record (MBR). В результате, в работе компьютера появятся сбои, что со временем приведёт к появлению ошибок синего экрана (BSOD) и зависаний. Это типичный признак заражения компьютера вирусами.
Это только самые распространённые способы определения наличия на компьютере вирусов, вредоносных программ (malware) или программ вымогателей (ransomware), и их симптомы. И то как быстро пользователь сможет разобраться с такими программами на своём ПК зависит сохранность его данных и файлов.
Если же, в результате заражения компьютера вирусами или деятельности вредоносных программ, ваш компьютер утратил работоспособность, восстановить которую возможно только переустановкой операционной системы или форматированием жесткого диска, а как результат ваши данные были утеряны или повреждены, вы их можете восстановить с помощью программы для восстановления данных Hetman Partition Recovery. Также, рекомендуем воспользоваться одним из способов, описанных в других статьях нашего блога.
В этой статье рассказано о вирусах, заражающих ЕХЕ-файлы. Приведена классификация таких вирусов, подробно рассмотрены алгоритмы их работы, отличия между ними достоинства и недостатки.
Вирусы — это хорошая гимнастика для ума, хотя многие думают, что написать вирус на языке высокого уровня весьма трудно. Это не совсем так. Писать на языке Pascal довольно легко, правда величина полученного кода вызывает благоговейный трепет.
Для каждого типа вирусов представлены исходные тексты с подробными комментариями.Также приведены основные сведения о структуре и принципах работы ЕХЕ-программы.
Структура и процесс загрузки ЕХЕ-программы
В отличие от СОМ-программ, ЕХЕ-программы могут состоять из нескольких сегментов (кодов, данных, стека). Они могут занимать больше 64Кбайт.ЕХЕ-файл имеет заголовок, который используется при его загрузке.Заголовок состоит из форматированной части, содержащей сигнатуру и данные, необходимые для загрузки ЕХЕ-файла, и таблицы для настройки адресов (Relocation Table). Таблица состоит из значений в формате сегмент:смещение. К смещениям в загрузочном модуле, на которые указывают значения в таблице, после загрузки программы в память должен быть прибавлен сегментный адрес, с которого загружена программа.
При запуске ЕХЕ-программы системным загрузчиком (вызовом функции DOS 4Bh) выполняются следующие действия:
1. Определяется сегментный адрес свободного участка памяти,размер
которого достаточен для размещения программы.
2.Создается и заполняется блок памяти для переменных среды.
3.Создается блок памяти для PSP и программы (сегментЮОООЬ — PSP;
В поля PSP заносятся соответствующие значения.
4.Адрес DTA устанавливается равным PSP:0080h.
5.В рабочую область загрузчика считывается форматированная часть
заголовка ЕХЕ-файла.
6.Вычисляется длина загрузочного модуля по формуле:
7.Определяется смещение загрузочного модуля в файле, равное
8.Вычисляется сегментный адрес (START_SEG) для загрузки -обычно это PSP+lOh.
9.Считывается в память загрузочный модуль (начиная с адреса
10.Для каждого входа таблицы настройки:
a)читаются слова I_OFF и I_SEG;
c)читается слово по адресу RELO_SEG:I_OFF;
d)к прочитанному слову прибавляется START_SEG;
e)результат запоминается по тому же адресу (RELO_SEG:I_OFF).
11.Распределяется память для программы в соответствии с МахМет
12.Инициализируются регистры, выполняется программа:
b) АХ=результат проверки правильности идентификаторов драйверов, указанных в командной строке;
ЕХЕ-вирусы условно можно разделить на группы, используя в качестве признака для деления особенности алгоритма. Вирусы, замещающие программный код (Overwrite) Такие вирусы уже стали раритетом. Главный их недостаток — слишком грубая работа. Инфицированные программы не исполняются, так как вирус записывается поверх программного кода, не сохраняя его. При запуске вирус ищет очередную жертву (или жертвы), открывает найденный файл для редактирования и записывает свое тело в начало программы, не сохраняя оригинальный код. Инфицированные этими вирусами программы лечению не подлежат.
Эти вирусы получили свое название из-за алгоритма размножения:
к каждому инфицированному файлу создается файл-спутник. Рассмотрим более подробно два типа вирусов этой группы:
Вирусы первого типа размножается следующим образом. Для каждого инфицируемого ЕХЕ-файла в том же каталоге создается файл с вирусным кодом, имеющий такое же имя, что и ЕХЕ-файл, но с расширением СОМ. Вирус активируется, если при запуске программы в командной строке указано только имя исполняемого файла. Дело в том, что, если не указано расширение файла, DOS сначала ищет в текущем каталоге файл с заданным именем и расширением СОМ. Если СОМ-файл с таким именем не найден, ведется поиск одноименного ЕХЕ-файла. Если не найден и ЕХЕ-файл, DOS попробует обнаружить ВАТ (пакетный) файл. В случае отсутствия в текущем каталоге исполняемого файла с указанным именем поиск ведется во всех каталогах, доступных по переменной PATH. Другими словами, когда пользователь хочет запустить программу и набирает в командной строке только ее имя (в основном так все и делают), первым управление получает вирус,код которого находится в СОМ-файле. Он создает СОМ-файл еще к одному или нескольким ЕХЕ-файлам (распространяется), а затем исполняет ЕХЕ-файл с указанным в командной строке именем. Пользователь же думает, что работает только запущенная ЕХЕ-программа.
Вирус-спутник обезвредить довольно просто — достаточно удалить
СОМ-файл.
Вирусы второго типа действуют более тонко. Имя инфицируемого
ЕХЕ-файла остается прежним, а расширение заменяется каким-либо
другим, отличным от исполняемого (СОМ, ЕХЕ и ВАТ), Например,
файл может получить расширение DAT (файл данных) или OVL (про-
граммный оверлей). Затем на место ЕХЕ-файла копируется вирусный код. При запуске такой инфицированной программы управление получает вирусный код, находящийся в ЕХЕ-файле. Инфицировав еще один или несколько ЕХЕ-файлов таким же образом, вирус возвращает оригинальному файлу исполняемое расширение (но не EХЕ, а СОМ, поскольку ЕХЕ-файл с таким именем занят вирусом), после чего исполняет его. Когда работа инфицированной программы закончена, ее запускаемому файлу возвращается расширение неисполняемого. Лечение файлов, зараженных вирусом этого типа, может быть затруднено,если вирус-спутник шифрует часть или все тело инфицируемого файла,а перед исполнением его расшифровывает.
Вирусы, внедряющиеся в программу (Parasitic) Вирусы этого вида самые незаметные: их код записывается в инфицируемую программу, что существенно затрудняет лечение зараженных файлов. Рассмотрим методы внедрения ЕХЕ-вирусов в ЕХЕ-файл.
Способы заражения ЕХЕ-файлов
Самый распространенный способ заражения ЕХЕ-файлов такой: в конец файла дописывается тело вируса, а заголовок корректируется (с сохранением оригинального) так, чтобы при запуске инфицированного файла управление получал вирус. Похоже на заражение СОМ-файлов, но вместо задания в коде перехода в начало вируса корректируется собственно адрес точки запуска программы. После окончания работы вирус берет из сохраненного заголовка оригинальный адрес запуска программы, прибавляет к его сегментной компоненте значение регистра DS или ES (полученное при старте вируса) и передает управление на полученный адрес.
Следующий способ — внедрение вируса в начало файла со сдвигом кода
Вирусы, замещающие программный код ( Overwrite ) Как уже говорилось, этот вид вирусов уже давно мертв. Изредка появляются еще такие вирусы, созданные на языке Assembler, но это, скорее, соревнование в написании самого маленького overwrite-вируса. На данный момент самый маленький из известных overwrite-вирусов написан Reminder’ом (Death Virii Crew group) и занимает 22 байта.
Алгоритм работы overwrite-вируса следующий:
1. Открыть файл, из которого вирус получил управление.
2. Считать в буфер код вируса.
4. Искать по маске подходящий для заражения файл.
5. Если файлов больше не найдено, перейти к пункту 11.
6. Открыть найденный файл.
7. Проверить, не заражен ли найденный файл этим вирусом.
8. Если файл заражен, перейти к пункту 10.
9. Записать в начало файла код вируса.
10. Закрыть файл (по желанию можно заразить от одного до всех фай-
лов в каталоге или на диске).
12. Завершить программу.
Ниже приведен листинг программы, заражающей файлы таким способом.
Читайте также: