Но с вирусами можно бороться с высокой вероятностью успеха. Прежде всего, поскольку вирус – это программа в чистом виде или кусок исполняемого кода, спрятанный в другом файле, он недееспособен до момента его первого запуска на данном компьютере. Это дает время на то, чтобы каждый новый файл, попадающий в компьютер, был просканирован программой-антивирусом, которая прочитывала бы все содержимое файла в поисках штаммов известных вирусов, и в случае обнаружения блокировала бы файл и выдавала предупреждение. Такие программы есть. Например, известные антивирусы – это "Антивирус Касперского" (KAV – Kaspersky Anti-Virus или KIS – Kaspersky Internet Security), "Доктор Веб" (Dr. Web), "Нортон Антивирус" (Norton Antivirus). Есть много других более или менее известных программ, лучшие из них трудно выделить.
Антивирус при запуске проверяет весь жесткий диск, или заданную папку, или диск/флэшку и при обнаружении вируса предлагает его "вылечить", т. е. избавиться от вредоносного кода путем аккуратного его вырезания из тела полезной программы (и зашивания оставшихся прорех хирургической нитью ☺). При невозможности вылечить файл антивирус предлагает его удалить. Можно настроить программу так, чтобы она не предпринимала никаких действий, а только лишь составляла отчет об обнаруженных на диске вирусах.
Но человек не может каждый раз, работая с файлами, проверять их на вирусы – никакого терпения не хватит. Для этой цели антивирусы могут работать в таком режиме, когда файл проверяется на вирус только при попытке его копирования или запуска, избавляя человека от обязанности постоянно помнить о вирусах. Программы, работающие в таком фоновом режиме, называют обычно мониторами. Они осуществляют мониторинг (наблюдение), в нашем случае – на присутствие вирусов. Единственное условие для антивирусного монитора – он должен быть запущен перед началом работы на компьютере. Это условие тоже обеспечивается автоматически – при установке программы она помещается в специальный список программ, которые автоматически стартуют при запуске операционной системы.
Но остается еще одна проблема – как антивирус отличит вирус от нормальной программы? Эта проблема самая сложная. Для этого фирмы, занимающиеся разработкой антивирусов, собирают сведения об известных вирусах по всему миру, используя любую доступную информацию. На своих сайтах они вывешивают объявления типа "если Вы обнаружили вирус и смогли его локализовать, отправьте его нам, чтобы мы могли создать против него лекарство". Поступающий в лабораторию вирус препарируется, изучается замысел его создателя, описание тактики действия, заложенной в данный вирус, выкладывается на сайт для ознакомления широкого круга пользователей. Часть кода, уникально идентифицирующая этот вирус, включается в базу данных. Базы данных известных вирусов постоянно пополняются и выкладываются на сайт в Интернете для общедоступного скачивания. Пользователи скачивают обновленные антивирусные базы и подключают их к своим антивирусным программам. Таким образом они обеспечивают свои антивирусы новой информацией.