Skip to main content

ЕХЕ-ВИРУСЫ

вирус

В этой главе рассказано о вирусах, заражающих ЕХЕ-файлы. Приведена классификация таких вирусов, подробно рассмотрены алгоритмы их работы, отличия между ними, достоинства и недостатки. Для каждого типа вирусов представлены исходные тексты с подробными комментариями. Также приведены основные сведения о структуре и принципах Работы ЕХЕ-программы. СОМ-файлы (небольшие программы, написанные в основном на языке Assembler) медленно, но верно устаревают. Им на смену приходят пугающие своими размерами ЕХЕ-"монстры". Появились и вирусы, умеющие заражать ЕХЕ-файлы.

Структура и процесс загрузки ЕХЕ-программы

В отличие от СОМ-программ, ЕХЕ-программы могут состоять из нескольких сегментов (кодов, данных, стека). Они могут занимать больше 64Кбайт. ЕХЕ-файл имеет заголовок, который используется при его загрузке. Заголовок состоит из форматированной части, содержащей сигнатуру и данные, необходимые для загрузки ЕХЕ-файла, и таблицы для настройки адресов (Relocation Table). Таблица состоит из значений в формате сегмент: смещение. К смещениям в загрузочном модуле, на которые указывают значения в таблице, после загрузки программы в память должен быть прибавлен сегментный адрес, с которого загружена программа. При запуске ЕХЕ-программы системным загрузчиком (вызовом функции DOS 4Bh) выполняются следующие действия:

1. Определяется сегментный адрес свободного участка памяти, размер
которого достаточен для размещения программы.
2. Создается и заполняется блок памяти для переменных среды.
3. Создается блок памяти для PSP и программы (сегментЮОООЬ - PSP;
сегмент+ООЮЬЮОООЬ - программа). В поля PSP заносятся соответствующие значения.
4. Адрес DTA устанавливается равным PSP:0080h.
5. В рабочую область загрузчика считывается форматированная часть
заголовка ЕХЕ-файла.
6. Вычисляется длина загрузочного модуля по формуле:

  • Si7.e=((PageCnt*5i2)-(HdrSae*i6))-Pa!tP3ig.

7. Определяется смещение загрузочного модуля в файле, равное
HdrSize*16.
8. Вычисляется сегментный адрес (START_SEG) для загрузки -
обычно это PSP+lOh.
9. Считывается в память загрузочный модуль (начиная с адреса
START_SEG:0000).
10. Для каждого входа таблицы настройки:

  • читаются слова I_OFF и I_SEG;
  • вычисляется RELC^SEG-START^SEG+LSEG;
  • читается слово по адресу RELO_SEG:I_OFF;
  • к прочитанному слову прибавляется START_SEG;
  • результат запоминается по тому же адресу (RELO_SEG:I_OFF).

11. Распределяется память для программы в соответствии с МахМет
и МтМет.
12. Инициализируются регистры, выполняется программа:

  • ES=DS°PSP;
  • АХ=результат проверки правильности идентификаторов драйверов, указанных в командной строке;
  • SS°START_SEG+ReloSS, SP-ExeSP;
  • CS=START_SEG+ReloCS, IP=ExeIP.

Классификация ЕХЕ-вирусов

ЕХЕ-вирусы условно можно разделить на группы, используя в качестве признака для деления особенности алгоритма.
Вирусы, замещающие программный код (Overwrite). Такие вирусы уже стали раритетом. Главный их недостаток - слишком грубая работа. Инфицированные программы не исполняются, так как вирус записывается поверх программного кода, не сохраняя его. При запуске вирус ищет очередную жертву (или жертвы), открывает найденный файл для редактирования и записывает свое тело в начало программы, не сохраняя оригинальный код. Инфицированные этими вирусами программы лечению не подлежат.

Вирусы-спутники (Companion)

Эти вирусы получили свое название из-за алгоритма размножения: к каждому инфицированному файлу создается файл-спутник. Рассмотрим более подробно два типа вирусов этой группы: Вирусы первого типа размножается следующим образом. Для каждого инфицируемого ЕХЕ-файла в том же каталоге создается файл с вирусным кодом, имеющий такое же имя, что и ЕХЕ-файл, но с расширением СОМ. Вирус активируется, если при запуске программы в командной строке указано только имя исполняемого файла. Дело в том, что, если не указано расширение файла, DOS сначала ищет в текущем каталоге файл с заданным именем и расширением СОМ. Если СОМ-файл с таким именем не найден, ведется поиск одноименного ЕХЕ-файла. Если не найден и ЕХЕ-файл, DOS попробует обнаружить ВАТ (пакетный) файл. В случае отсутствия в текущем каталоге исполняемого файла с указанным именем поиск ведется во всех каталогах, доступных по переменной PATH. Другими словами, когда пользователь хочет запустить программу и набирает в командной строке только ее имя (в основном так все и делают), первым управление получает вирус, код которого находится в СОМ-файле. Он создает СОМ-файл еще к одному или нескольким ЕХЕ-файлам (распространяется), а затем исполняет ЕХЕ-файл с указанным в командной строке именем. Пользователь же думает, что работает только запущенная ЕХЕ-программа.
Вирус-спутник обезвредить довольно просто - достаточно удалить
СОМ-файл.

Вирусы второго типа действуют более тонко. Имя инфицируемого ЕХЕ-файла остается прежним, а расширение заменяется каким-либо другим, отличным от исполняемого (СОМ, ЕХЕ и ВАТ), Например, файл может получить расширение DAT (файл данных) или OVL (программный оверлей). Затем на место ЕХЕ-файла копируется вирусный код. При запуске такой инфицированной программы управление получает вирусный код, находящийся в ЕХЕ-файле. Инфицировав еще один или несколько ЕХЕ-файлов таким же образом, вирус возвращает оригинальному файлу исполняемое расширение (но не ЁХЕ, а СОМ, поскольку ЕХЕ-файл с таким именем занят вирусом), после чего исполняет его. Когда работа инфицированной программы закончена, ее
запускаемому файлу возвращается расширение неисполняемого. Лечение файлов, зараженных вирусом этого типа, может быть затруднено,
если вирус-спутник шифрует часть или все тело инфицируемого файла,
а перед исполнением его расшифровывает.

JOovci hsafmohysejz,

JOovci hsafmohysejz, [url=http://vmxmtznzzjzg.com/]vmxmtznzzjzg[/url], [link=http://kdjvomgyxjqc.com/]kdjvomgyxjqc[/link], http://wvakkjwjthgq.com/

Отправить комментарий

  • Доступные HTML теги: <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Что бы оставить комментарий, вам надо доказать, что вы не робот. Пожалуйста введите оба нарисованных слова без пробелов и точек. Спасибо
9 + 4 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.