Защита программ от компьютерных вирусовРефераты >> Программирование и компьютеры >> Защита программ от компьютерных вирусов
Оглавление
1. ЧТО ТАКОЕ КОМПЬЮТЕРНЫЕ ВИРУСЫ
2. ЦИКЛ ФУНКЦИОНИРОВАНИЯ ВИРУСОВ
3. «ВАКЦИНАЦИЯ» ПРОГРАММ
3.1. Заголовок исполняемых файлов
3.2. Защита вновь создаваемых программ
3.3. Модуль F_Anti
4. ЗАЩИТА СУЩЕСТВУЮЩИХ ЕХЕ-ФАЙЛОВ
4.1. Описание программ SetFag.pas и Fag.asm
4.2. Программа AntiVir
5. НЕКОТОРЫЕ РЕКОМЕНДАЦИИ
1. ЧТО ТАКОЕ КОМПЬЮТЕРНЫЕ ВИРУСЫ
Если Вы имеете опыт продолжительной работы с ПК, то, возможно, уже сталкивались с компьютерными вирусами или хотя бы слышали о них. Компьютерный вирус-это программа, производящая в Вашем ПК действия, в которых Вы не нуждаетесь и о которых не подозреваете. Главной ее особенностью является способность к «размножению», т.е. к созданию множества готовых к дальнейшей работе экземпляров вируса. Вирусы «цепляются» к обычным исполняемым файлам типа .ЕХЕ, .СОМ или к загрузочным секторам физических носителей информации (дискет) и таким образом перемещаются от одного ПК к другому.
Являвшиеся первоначально вполне невинным развлечением скучающих программистов компьютерные вирусы сегодня стали настоящим бедствием для пользователей ПК: количество и типы таких программ растут с ужасающей скоростью, а сами вирусы в ряде случаев приобрели весьма неприятные свойства-некоторые из них способны уничтожать файловую структуру дисков со всеми катастрофическими для пользователя последствиями. В литературе [14] описывается беспрецедентный случай, когда вирус на Три дня (с 2 по 4 ноября 1988 г.) вывел из строя фактически всю компьютерную сеть США. Были парализованы компьютеры Агентства национальной безопасности, Стратегического командования ВВС США, локальные сети всех крупных университетов и исследовательских центров. Лишь в последний момент удалось спасти систему управления полетом космических кораблей Шаттл. Положение было настолько серьезным, что к расследованию немедленно приступило ФБР. Виновником катастрофы, причинившей ущерб более чем в 100 миллионов долларов, оказался студент выпускного курса Корнеллского университета Р.Моррис, придумавший достаточно хитрую разновидность вируса. Он был исключен из университета с правом восстановления через год и приговорен судом к уплате штрафа в 270 тысяч долларов и трем месяцам тюремного заключения.
Трудно объяснить, для чего программисты тратят силы и время на создание все более изощренных типов вируса, поскольку их авторы почти всегда остаются или надеются остаться анонимными, так что естественное для человека стремление к известности здесь исключено. Может быть это неудачная шутка (этой версии придерживался Р.Моррис), возможно это связано с патологическими отклонениями в психике, а может быть объяснение кроется в стремлении заработать на создании антивирусных программ? Как бы там ни было, нам нельзя не считаться с возможностью заражения ПК компьютерным вирусом.
2. ЦИКЛ ФУНКЦИОНИРОВАНИЯ ВИРУСОВ
В цикле существования любого вируса можно выделить три этапа. Первоначально вирус находится в неактивном состоянии. В этом состоянии он внедрен в тело исполняемого файла или находится в загрузочном секторе диска и «ждет» своего часа. Именно в неактивном состоянии вирусы переносятся вместе с программами или дискетами от одного ПК к другому (обмен программами между пользователями ПК-явление обыденное, и Вы сами, читатель, возможно копировали полюбившуюся Вам игру или текстовый редактор, не подозревая, что копируете еще и вирус). Разумеется, в неактивном состоянии вирус ничего не может сделать. Для того чтобы он начал свою работу, необходимо запустить исполняемый файл или загрузиться с зараженной дискеты. В этот момент активизируется вирус, который либо создает резидентную в памяти программу, способную порождать копии или производить какие-то разрушительные действия, либо немедленно приступает к работе.
Если вирус создал резидентную программу, то ее активизация осуществляется различными способами - все зависит от фантазии автора вируса. Обычно вирус перехватывает прерывание $21, являющееся ключевым для доступа к любым операциям с MS-DOS. Таким образом, любая попытка чтения или записи информации на диск или обращение к клавиатуре дисплея приводит к активизации резидентной программы вируса. После получения управления (или активизации резидентной программы) вирус приступает к «размножению»: он отыскивает подходящий исполняемый файл и внедряет свой код в его тело (см. ниже). Как правило, вирус заражает лишь один исполняемый файл за раз, чтобы пользователь не обратил внимания на чрезмерное замедление в работе программ: второй этап жизнедеятельности вируса - это этап активного размножения, поэтому вирусная программа стремится максимально скрыть от пользователя ПК результаты своей деятельности.
После того как заражено достаточно много файлов, может наступить третий этап, связанный с внешними проявлениями работы вируса. Ваш компьютер вдруг начнет вести себя странно: зазвучит ли музыкальная фраза, или начнут «сыпаться» символы на экране дисплея-не суть важно, главное, что только в этот момент Вы с ужасом вспомните, что на жестком диске находятся чрезвычайно важные для Вас данные или программы, которые Вы не успели или не смогли скопировать на дискеты. Увы! Некоторые вирусы к этому моменту могут уже безвозвратно нарушить файловую структуру.
Что делать при обнаружении вируса? Прежде всего не паниковать, ведь далеко не все вирусы отличаются «кровожадностью». Следует выключить компьютер, вставить в привод гибкого диска заранее припасенную эталонную системную дискету (никогда не снимайте с нее защиту!) и снова включить компьютер. Если на ПК имеется специальная кнопка для перезагрузки {RESET или INIT), можно использовать ее и не выключать/включать компьютер, но во всех случаях не пытайтесь перезагрузиться с помощью Ctrl-Alt-Del: от некоторых типов вируса Вы не избавитесь таким образом. Затем нужно запустить какую-либо программу—антивирус (например, AIDSTEST Д.Н.Лозинского) и с ее помощью локализовать и удалить вирус. Если антивирусная программа не может обнаружить вирус или у Вас под рукой нет такого рода программ, следует попробовать обратиться к нужному Вам жесткому диску и, если это удастся сделать, скопировать все наиболее ценное (но только не исполняемые файлы!) на дискеты. После этого заново переформатировать жесткий диск, перенести на него эталонную копию ДОС и восстановить с дискет то, что удалось спасти.