1 minute read

О программе

Программа Explosion Antivirus, предназначена для демонстрации способов реализации различных антивирусных технологий и является, так называемым, учебным пособием для системных программистов.
Основная цель — показать возможность создания эффективного антивируса с открытым исходным кодом, использующего методы эмуляции, которые тогда применялись только в коммерческих продуктах (Kaspersky, Dr.Web).

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

Xplosion’s cover art

Что нового по сравнению с версией 001

Эмуляция программного кода

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

Защита от “вечных циклов”

  • Эмулятор автоматически завершает работу через 3 секунды (Используется GetTickCount для контроля времени выполнения)

Улучшенный анализатор delta-offset

  • Увеличен счётчик инструкций с 4 до 8 (более надёжное обнаружение процедур вычисления разницы смещений)

Новые эмулируемые инструкции (+40)

Инструкции Описание
stosb/stosw/stosd Строковые записи
lodsb/lodsw/lodsd Строковые чтения
movsx/movzx Расширение со знаком/без
xchg eax, reg Обмен с EAX
push ds/push cs Сегментные регистры
cmc/stc/cli/sti Флаговые инструкции

Лечение заражённых файлов

Вирус Методика лечения
Krized Очищает 16 адресов API из KERNEL32.DLL, восстанавливает PE-заголовок
Marburg Пересчитывает SizeOfImage, удаляет 256 байт из EntryPoint

p.s. Krized не лечится большей частью коммерческих антивирусов.

Сервисные функции

Функция сканирования всех жестких дисков

explosion.exe /*

Создание файлов отчета (xplosion.rep), о результатах проведенного сканирования в двух режимах:

  • /ra — дописать в существующий отчёт
  • /rc — создать новый отчёт

Отладочный режим (/d)

  • Создание дампа проэмулированного кода в файл *.dmp
  • Позволяет анализировать точку остановки эмулятора

Скачать

Дополнительные материалы

При разработке программы использовались следующие материалы:

  1. Hard Wisdom - Формат исполняемых файлов PortableExecutables (версия 1.3.0 от 6 августа, 1999г).
  2. Климентьев К.Е. aka DrMad - Данные формата файлов PE (использованные исходные тексты программы DullPro).
  3. Hayras - Функции работы с консолью.

Хочется поблагодарить вышеуказанных людей!

Автор: Andrei Agafonov