Что заражает загрузочно-файловый вирус

Рассмотрим теперь схему работы простого файлового вируса. В отличие от загрузочных вирусов, которые практически всегда резидентны, файловые вирусы совсем не обязательно резидентны. Рассмотрим схему функционирования нерезидентного файлового вируса. Пусть у нас имеется инфицированный исполняемый файл. При запуске такого файла вирус получает управление, производит некоторые действия и передает управление “хозяину”

Какие же действия выполняет вирус? Он ищет новый объект для заражения - подходящий по типу файл, который еще не заражен. Заражая файл, вирус внедряется в его код, чтобы получить управление при запуске этого файла. Кроме своей основной функции - размножения, вирус вполне может сделать что-нибудь замысловатое (сказать, спросить, сыграть) - это уже зависит от фантазии автора вируса. Если файловый вирус резидентный, то он установится в память и получит возможность заражать файлы и проявлять прочие способности не только во время работы зараженного файла. Заражая исполняемый файл, вирус всегда изменяет его код - следовательно, заражение исполняемого файла всегда можно обнаружить. Но, изменяя код файла, вирус не обязательно вносит другие изменения:

он не обязан менять длину файла

неиспользуемые участки кода

не обязан менять начало файла

Наконец, к файловым вирусам часто относят вирусы, которые “имеют некоторое отношение к файлам”, но не обязаны внедряться в их код.

Таким образом, при запуске любого файла вирус получает управление (операционная система запускает его сама), резидентно устанавливается в память и передает управление вызванному файлу.

Загрузочно-файловые вирусы

Мы не станем рассматривать модель загрузочно-файлового вируса, ибо никакой новой информации вы при этом не узнаете. Но здесь представляется удобный случай кратко обсудить крайне “популярный” в последнее время загрузочно-файловый вирус OneHalf, заражающий главный загрузочный сектор (MBR) и исполняемые файлы. Основное разрушительное действие - шифрование секторов винчестера. При каждом запуске вирус шифрует очередную порцию секторов, а, зашифровав половину жесткого диска, радостно сообщает об этом. Основная проблема при лечении данного вируса состоит в том, что недостаточно просто удалить вирус из MBR и файлов, надо расшифровать зашифрованную им информацию.

Полиморфные вирусы

Большинство вопросов связано с термином “полиморфный вирус”. Этот вид компьютерных вирусов представляется на сегодняшний день наиболее опасным. Объясним же, что это такое.

Полиморфные вирусы - вирусы, модифицирующие свой код в зараженных программах таким образом, что два экземпляра одного и того же вируса могут не совпадать ни в одном бите.

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

Полиморфные вирусы - это вирусы с самомодифицирующимися расшифровщиками. Цель такого шифрования: имея зараженный и оригинальный файлы, вы все равно не сможете проанализировать его код с помощью обычного дизассемблирования. Этот код зашифрован и представляет собой бессмысленный набор команд. Расшифровка производится самим вирусом уже непосредственно во время выполнения. При этом возможны варианты: он может расшифровать себя всего сразу, а может выполнить такую расшифровку “по ходу дела”, может вновь шифровать уже отработавшие участки. Все это делается ради затруднения анализа кода вируса.

В ходе проверки компьютера антивирусные программы считывают данные - файлы и системные области с жестких дисков и дискет, пользуясь средствами операционной системы и базовой системы ввода/вывода BIOS. Ряд вирусов, после запуска оставляют в оперативной памяти компьютера специальные модули, перехватывающие обращение программ к дисковой подсистеме компьютера. Если такой модуль обнаруживает, что программа пытается прочитать зараженный файл или системную область диска, он на ходу подменяет читаемые данные, как будто вируса на диске нет.

Стелс-вирусы обманывают антивирусные программы и в результате остаются незамеченными. Тем не менее, существует простой способ отключить механизм маскировки стелс-вирусов. Достаточно загрузить компьютер с не зараженной системной дискеты и сразу, не запуская других программ с диска компьютера (которые также могут оказаться зараженными), проверить компьютер антивирусной программой.

При загрузке с системной дискеты вирус не может получить управление и установить в оперативной памяти резидентный модуль, реализующий стелс-механизм. Антивирусная программа сможет прочитать информацию, действительно записанную на диске, и легко обнаружит вирус.

Прежде всего компьютерный вирус - это программа, обладающая способностью к самовоспроизведению. Такая способность является единственным средством, присущим всем типам вирусов.

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

В настоящее время известны тысячи компьютерных вирусов, их можно классифицировать по следующим признакам:

· способу заражения среды обитания;

В зависимости от среды обитания вирусы можно разделить на сетевые, файловые, загрузочные и файлово-загрузочные. Сетевые вирусы распространяются по различным компьютерным сетям. Файловые вирусы внедряются главным образом в исполняемые модули, т. е. в файлы, имеющие расширения СОМ и ЕХЕ. Файловые вирусы могут внедряться и в другие типы файлов, но, как правило, записанные в таких файлах, они никогда не получают управление и, следовательно, теряют способность к размножению. Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий программу загрузки системного диска (Master Boot Record). Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков.

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

По степени воздействия вирусы можно разделить на следующие виды:

· неопасные , не мешающие работе компьютера, но уменьшающие объем свободной оперативной памяти и памяти на дисках, действия таких вирусов проявляются в каких-либо графических или звуковых эффектах;

· опасные вирусы , которые могут привести к различным нарушениям в работе компьютера;

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

По особенностям алгоритма вирусы трудно классифицировать из-за большого разнообразия. Простейшие вирусы - паразитические, они изменяют содержимое файлов и секторов диска и могут быть достаточно легко обнаружены и уничтожены. Можно отметить вирусы-репликаторы, называемые червями, которые распространяются по компьютерным сетям, вычисляют адреса сетевых компьютеров и записывают по этим адресам свои копии. Известны вирусы-невидимки, называемые стелс-вирусами, которые очень трудно обнаружить и обезвредить, так как они перехватывают обращения операционной системы к пораженным файлам и секторам дисков и подставляют вместо своего тела незараженные участки диска. Наиболее трудно обнаружить вирусы-мутанты, содержащие алгоритмы шифровки-расшифровки, благодаря которым копии одного и того же вируса не имеют ни одной повторяющейся цепочки байтов. Имеются и так называемые квазивирусные, или троянские программы, которые хотя и не способны к самораспространению, но очень опасны, так как, маскируясь под полезную программу, разрушают загрузочный сектор и файловую систему дисков.

Загрузочные вирусы

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

Что происходит, когда вы включаете компьютер? Первым делом управление передается программе начальной загрузки (ПНЗ), которая хранится в постоянно запоминающем устройстве (ПЗУ).

Эта программа тестирует оборудование и при успешном завершении проверок пытается найти дискету в дисководе А:. Всякая дискета размечена на секторы и дорожки. Секторы объединяются в кластеры, но это для нас несущественно. Среди секторов есть несколько служебных, используемых операционной системой для собственных нужд (в этих секторах не могут размещаться ваши данные).

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

Таким образом, нормальная схема начальной загрузки следующая:

Теперь рассмотрим вирус. В загрузочных вирусах выделяют две части - голову и хвост. Хвост, вообще говоря, может быть пустым. Пусть у вас имеются чистая дискета и зараженный компьютер, под которым мы понимаем компьютер с активным резидентным вирусом. Как только этот вирус обнаружит, что в дисководе

появилась подходящая жертва - в нашем случае не защищенная от записи и еще не зараженная дискета, он приступает к заражению. Заражая дискету, вирус производит следующие действия:

· выделяет некоторую область диска и помечает ее как недоступную операционной системе. Это можно сделать по-разному, в простейшем и традиционном случае занятые вирусом секторы помечаются как сбойные (bad);

· копирует в выделенную область диска свой хвост и оригинальный (здоровый) загрузочный сектор;

· замещает программу начальной загрузки в загрузочном секторе (настоящем) своей головой;

· организует цепочку передачи управления согласно схеме.

Таким образом, голова вируса теперь первой получает управление, вирус устанавливается в память и передает управление оригинальному загрузочному сектору.

В цепочке ПНЗ (ПЗУ) ® ПНЗ (диск) ® СИСТЕМА появляется новое звено: ПНЗ (ПЗУ) ® ВИРУС ® ПНЗ (диск) ® СИСТЕМА .

Поэтому никогда не оставляйте (случайно) дискет в дисководе А.

Мы рассмотрели схему функционирования простого бутового вируса, живущего в загрузочных секторах дискет. Как правило, вирусы способны заражать не только загрузочные сектора дискет, но и загрузочные сектора винчестеров. При этом в отличие от дискет на винчестере имеются два типа загрузочных секторов, содержащих программы начальной загрузки, которые получают управление.

При загрузке компьютера с винчестера первой берет на себя управление программа начальной загрузки в MBR (Master Boot Record - главная загрузочная запись). Если ваш жесткий диск разбит на несколько разделов, то лишь один из них помечен как загрузочный (boot). Программа начальной загрузки в MBR находит загрузочный раздел винчестера и передает управление на программу начальной загрузки этого раздела. Код последней совпадает с кодом программы начальной загрузки, содержащейся на обычных дискетах, а соответствующие загрузочные сектора отличаются только таблицами параметров. Таким образом, на винчестере имеются два объекта атаки загрузочных вирусов - программа начальной загрузки в MBR и программа начальной загрузки в boot-секторе загрузочного диска.

Файловые вирусы

Если файловый вирус резидентный, то он установится в память и получит возможность заражать файлы и проявлять прочие способности не только во время работы зараженного файла.

Заражая исполняемый файл, вирус всегда изменяет его код -следовательно, заражение исполняемого файла всегда можно обнаружить. Но, изменяя код файла, вирус не обязательно вносит другие изменения: он не всегда изменяет длину файла, может не менять начало файла.

Основная проблема при лечении данного вируса состоит в том, что недостаточно просто удалить вирус из MBR и файлов, надо расшифровать зашифрованную им информацию. Наиболее радикальное действие - просто переписать новый здоровый MBR.

Полиморфные вирусы

Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке программы с дискеты, содержащей вирус. Такое заражение может быть и случайным, например, если дискету не вынули из дисковода А: и перезагрузили компьютер, при этом дискета может быть и не системной. Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставили в дисковод зараженного компьютера и, например, прочитали ее оглавление.

Примечание . Чтобы исключить заражение дискеты компьютерным вирусом, запретите запись на диск. Режим запрета записи на дискете 3,5’’ устанавливается специальным переключателем, расположенным в одном из углов дискеты. Для запрета записи на дискету, манипулируя этим переключателем, откройте прорезь в дискете.

Вирус, как правило, внедряется в рабочую программу таким образом, чтобы при ее запуске управление сначала передалось ему и только после выполнения всех его команд снова вернулось к рабочей программе. Получив доступ к управлению, вирус прежде всего переписывает сам себя в другую рабочую программу и заражает ее. После запуска программы, содержащей вирус, становится возможным заражение других файлов. Наиболее часто вирусом заражаются загрузочный сектор диска и исполняемые файлы, имеющие расширения EXE, COM, SYS, ВАТ. Крайне редко заражаются текстовые файлы.

После заражения программы вирус может выполнить какую-нибудь диверсию, не слишком серьезную, чтобы не привлечь внимания и, наконец, не забывает возвратить управление той программе, из которой был запущен. Каждое выполнение зараженной программы переносит вирус в следующую. Таким образом, заразится все программное обеспечение.

При заражении компьютера вирусом важно его обнаружить. Для этого следует знать об основных признаках проявления вирусов. К ним можно отнести следующие:

· прекращение работы или неправильная работа ранее успешно функционировавших программ;

· медленная работа компьютера;

· невозможность загрузки операционной системы;

· исчезновение файлов и каталогов или искажение их содержимого;

· изменение даты и времени модификации файлов;

· изменение размеров файлов;

· неожиданное значительное увеличение количества файлов на диске;

· существенное уменьшение размера свободной оперативной памяти;

· вывод на экран непредусмотренных сообщений или изображений;

· подача непредусмотренных звуковых сигналов;

· частые зависания и сбои в работе компьютера.

Следует отметить, что вышеперечисленные явления необязательно вызываются присутствием вируса, а могут быть следствием других причин. Поэтому всегда затруднена правильная диагностика состояния компьютера.

· как обнаружить вирус, для этого уточняются методы поиска сигнатур в потенциальных объектах вирусной атаки – файлах и/или загрузочных секторах;

· как обезвредить вирус, если это возможно, разрабатываются алгоритмы удаления вирусного кода из пораженных объектов.

Для обнаружения, удаления вирусов и защиты от них разработано несколько видов специальных программ, которые позволяют обнаруживать и уничтожать вирусы. Такие программы называются антивирусными. Различают следующие виды антивирусных программ:

· программы-доктора, или фаги;

· программы-вакцины, или иммунизаторы.

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

Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-доктора быстро устаревают, и требуется регулярное обновление версий.

Программы-ревизоры относятся к самым надежным средствам защиты от вирусов. Ревизоры запоминают исходное состояние программ, каталогов и системных областей диска тогда, когда компьютер не заражен вирусом, а затем периодически или по желанию пользователя сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран монитора. Как правило, сравнение состояний производят сразу после загрузки операционной системы. При сравнении проверяются длина файла, код циклического контроля (контрольная сумма файла), дата и время модификации, другие параметры. Программы-ревизоры имеют достаточно развитые алгоритмы, обнаруживают стелс-вирусы и могут даже очистить изменения версии проверяемой программы от изменений, внесенных вирусом. К числу программ-ревизоров относится широко распространенная в России программа ADinf.

· попытки коррекции файлов с расширениями СОМ, ЕХЕ;

· изменение атрибутов файла;

· прямая запись на диск по абсолютному адресу;

· запись в загрузочные сектора диска;

· загрузка резидентной программы.

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

Для того чтобы не подвергнуть компьютер заражению вирусами и обеспечить надежное хранение информации на дисках, необходимо соблюдать следующие правила:

1. Оснастите свой компьютер современными антивирусными программами, например Doctor Web, AVP, и постоянно возобновляйте их версии.

2. Перед считыванием с дискет информации, записанной на других компьютерах, всегда проверяйте эти дискеты на наличие вирусов, запуская антивирусные программы своего компьютера.

3. При переносе на свой компьютер файлов в архивированном виде проверяйте их сразу же после разархивации на жестком диске, ограничивая область проверки только вновь записанными файлами.

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

5. Всегда защищайте свои дискеты от записи при работе на других компьютерах, если на них не будет производиться запись информации.

6. Обязательно делайте архивные копии на дискетах ценной для вас информации.

7. Не оставляйте в кармане дисковода А: дискеты при включении или перезагрузке операционной системы, чтобы исключить заражение компьютера загрузочными вирусами.

8. Используйте антивирусные программы для входного контроля всех исполняемых файлов, получаемых из компьютерных сетей.

9. Для обеспечения большей безопасности применения необходимо сочетать доктора и ревизоры, например, DrWeb и ADinf.

Aidstest - это антивирусная программа-полифаг, способная сейчас обнаружить и уничтожить более 1700 вирусов. В настоящее время Aidstest поставляется как бесплатное приложение к программе Dr. Web, дополняя вирусную базу Dr. Web.

Рассмотрим использование программы DrWeb32, которая предназначена для использования в 32-битных операционных системах семейства Windows (т.е. Windows 95/98/Me/NT/2000/XP) и для краткости названа Dr.Web for Windows 95-XP, или просто DrWeb32W.

Важнейшим новшеством программы DrWeb32 является модульный принцип ее построения. Еще в версии DrWeb 4.0 основная вирусная база была выделена в отдельный файл и подгружалась после старта программы аналогично файлам-дополнениям, что позволило решить проблему нехватки основной памяти. Теперь в DrWeb32 произошло разделение программы на оболочку, ориентированную на работу в конкретной среде (в данном случае, Windows 95/98/NT), и ядро, не зависящее от среды. Такая организация антивирусной программы позволяет:

· использовать одни и те же файлы вирусной базы DrWeb для разных платформ - DOS, Windows 95/98/ME/NT/2000/XP, OS/2,Novell Netware;

· подключать ядро к различным оболочкам и приложениям, что дает возможность простой интеграции антивирусной проверки со многими прикладными задачами;

· реализовать механизм автоматического пополнения вирусных баз и обновления версий оболочки и ядра через сеть Интернет.

К важным особенностям программы относятся:

· наглядные и гибкие средства выбора объектов тестирования путем просмотра дерева подкаталогов любых дисков вплоть до уровня отдельных файлов;

· отсутствие ряда ограничений традиционной версии;

· полная проверка всей системной памяти Windows 95/98/ME;

· автоматическое обновление через Интернет;

· резидентный антивирусный контроль файлов (сторож SpIDer);

· интеллектуальная технология контроля вирусной активности SpIDer-Netting.

Программа DrWeb32 для Windows выпущена в двух вариантах: с графическим интерфейсом (DrWeb32W) и без него (DrWebWCL). Оба варианта поддерживают одинаковый набор параметров (ключей) командной строки. Для разового нерегулярного применения более удобен первый режим, но для регулярного применения с целью систематического входного контроля дискет лучше применять второй режим. При использовании второго режима соответствующая команда запуска DrWeb должна быть включена либо в меню пользователя операционной оболочки Total Commander, либо в специальный командный файл.

Командная строка для запуска DrWeb выглядит следующим образом:

X: - логическое устройство жесткого диска или физическое устройство гибкого диска, например F: или А:,

* - все логические устройства на жестком диске, путь - это путь или маска требуемых файлов.

Наиболее важные ключи:

· / AL -диагностика всех файлов на заданном устройстве;

· P - удаление вирусов с подтверждением пользователя;

· / DL - удаление файлов, корректное лечение которых невозможно;

· / HA [уровень] - эвристический анализ файлов и поиск в них неизвестных вирусов, где уровень может принимать значения 0, 1,2;

· /КР[имя файла] - запись протокола работы в файл (по умолчанию в файл REPORT.WEB);

· / CL - запуск программы в режиме командной строки, при тестировании файлов и системных областей не используется полноэкранный интерфейс;

· / QU - выход в DOS сразу после тестирования;

· /? - вывод на экран краткой справки.

Если в командной строке DrWeb не указано ни одного ключа, то вся информация для текущего запуска будет считываться из файла конфигурации DRWEB.INI, расположенного в том же каталоге, что и файл DRWEB.EXE. Файл конфигурации создается в процессе работы с программой DrWeb с помощью команды сохранения параметров, необходимых для тестирования.

По умолчанию (при отсутствии файла конфигурации DRWEB.INI) основные режимы сканирования соответствуют следующей командной строке:

DRWEB.EXE /AR /FM / НА /HI /RPREPORT.DWB /RV /SO /UP

На рис.1. показана проверка компьютера на наличие вирусов в окне DrWeb.


Рис. 1. Проверка диска C : на наличие вирусов в окне DrWeb.

Как вирусы проникают в структуру файловой системы?

Есть очень немногочисленная особая группа вирусов, которые заражают файлы, не внедряя в них свой код явным образом. Но, тем не менее, мы относим их к файловым вирусам, так как объектами для них являются исполнимые файлы.

Эти вирусы используют изощренную технологию размножения, которая позволяет им распространяться с большой скоростью. Технология эта заключается в том, что вирусы этой группы (ее называют DIR-группой) вносят изменения в структуру файловой системы.

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

Какие файлы заражают вирусы?

Файловые вирусы - это самая большая группа вирусов. Они заражают любые исполняемые файлы.

1. Командные файлы. Эти файлы имеют расширение имени BAT (batch - команда), поэтому часто называются просто BAT-файлами. Это файлы, содержащие последовательность команд операционной системы. С другой стороны, это обычные текстовые файлы.

2. Исполняемые файлы в формате COM. Эти файлы имеют расширение имени COM, поэтому их называют COM-файлами. СОМ- формат - это один из основных форматов исполняемых файлов. Размер СОМ-файла должен занимать не более 64 Кб. Они состоят из команд центрального процессора, то есть содержат машинные инструкции. Вместе с ними там могут находиться и данные: числовые константы, тексты и т.п.

3. Исполняемые файлы в формате EXE. Так как такие файлы имеют расширение имени EXE, их называют еще EXE-файлами. Они имеют более сложную структуру и, следовательно, имеют размер больший 64 Килобайт. Кроме процессорных команд и данных эти файлы содержат специальный заголовок, который находится в самом начале файла. Заголовок EXE- файла начинается специальной двухбайтовой меткой. Это два символа “MZ” или, реже “ZM”. По этой метке загрузчик и определяет файл как EXE-файл, независимо от расширения имени!

Заметим, что расширение имени может не соответствовать внутреннему формату файла. То есть файл, имеющий формат EXE, может иметь расширение имени COM, но при загрузке по специальному признаку файла (метке) загрузчик все равно распознает файл как EXE-файл.

EXE-программы содержат несколько сегментов: сегмент кода, сегмент данных и сегмент стека. Поэтому в заголовке EXE-файла также хранится таблица настройки, которую использует загрузчик для инициализации программы. Обычно заголовок имеет размер 512 байт, и значительная его часть не используется (содержит нули).

Итак, когда пользователь запускает EXE-файл на выполнение, операционная система загружает его в оперативную память, считывает информацию из заголовка EXE-файла и настраивает его в соответствии с таблицей настойки. Затем управление передается на точку входа, также содержащуюся в заголовке, т.е. на первую команду программы.

4. Исполняемые файлы в формате PE ( Potable Executable ). Т акие файлы также имеют расширение имени EXE, однако внутренняя структура файла отлична от формата EXE . Подробнее см. дополнительный материал по курсу. Заметим только, что все исполняемые файлы Windows имеют такой формат.

5. Системные драйверы. Файлы драйверов имеют расширение SYS или BIN.

Это специальный вид программ. Драйверы запускаются только на этапе загрузки операционной системы, во время ее инициализации и интерпретации файла конфигурации.

6. Также могут быть инфицированы и файлы оверлеев, и динамически загружаемых библиотек. Это файлы, содержащие исполняемые двоичные коды, используемые основной программой по мере необходимости.

Как внедряются вирусы в COM - и EXE-файлы?

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

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

Внедрение вируса в начало файла.

Известны три способа внедрения вируса в начало файла.

1. Запись с перекрытием (overwriting). При заражении вирус записывает свои коды в начало файла, не сохраняя старого содержимого начала файла. Такие вирусы называют еще перекрывающими вирусами. Естественно, что при этом программа перестает работать и не восстанавливается. При запуске такой программы ничего не происходит, кроме того, что вирус заражает другой файл. Такие вирусы легко обнаруживаются и, следовательно, медленно распространяются. Это достаточно редкий способ, но очень простой. Чаще его используют “начинающие” авторы вирусов.

2. Запись в начало программы .

Вирус может записаться перед исходным кодом программы (prepending), просто сдвинув коды зараженной программы на число байт, равное длине вируса. Вирус создает в оперативной памяти свою копию, дописывает к ней заражаемый файл и сохраняет полученную конкатенацию на диск.

3. Вирус переписывает начало заражаемого файла в его конец, а сам копируется в освободившееся место. Начало заражаемого файла вирус может переписать и в любое другое место.

В подавляющем большинстве случаев внедрение вируса в начало файла происходит при заражении СОМ - файлов.

Внедрение вируса в середину файла

Все случаи внедрения вирусов в середину файла можно считать экзотическими, так как такой механизм реализовывает небольшое количество вирусов. Рассмотрим такие алгоритмы.

1) Вирус может быть скопирован в таблицу настройки адресов EXE-файла.

2) Вирус внедряется в область стека файла.

3) Вирус как бы “раздвигает” файл для себя.

4) По аналогии с внедрением вируса в начало файла, при котором переписывается содержимое начала файла в конец, возможен вариант, когда вирус записывается в середину файла, сохраняя при этом часть файла в его конец.

5) Достаточно сложный алгоритм компрессирования (сжатия) некоторых участков файлов. В результате при заражении не увеличивается длина файла.

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

Наиболее распространенный случай (до 95%) - внедрение вируса в файл дописыванием в конец этого файла (appending). При этом вирус обязательно изменяет начало файла таким образом, чтобы управление сразу передавалось на тело вируса.

У COM-файла изменяет первые три байта (иногда больше

а) либо на коды инструкции “Jmp адрес вируса” (это команда перехода на тело вируса);

б) либо на коды программы, передающей управление на тело вируса.

Оригинальные три байта начала файла вирус обязательно считывает и сохраняет.

а) модифицируется его заголовок. В заголовке изменяются

· значение стартового адреса

· значение длины выполняемого файла

· регистры - указатели на стек ( редко )

· контрольная сумма файла ( редко );

б) иногда EXE-файл переводится в формат COM и затем заражается как COM-файл.

Способ, при котором вирус дописывается в конец файла и изменяет у COM-файла

первые несколько байт, а у EXE-файла - несколько полей заголовка, иногда

называется стандартным способом заражения файлов.

Читайте также:

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.

Copyright © Иммунитет и инфекции