Explosion antivirus (десятая версия)
О программе
Программа Explosion Antivirus, предназначена для демонстрации способов реализации различных антивирусных технологий и является, так называемым, учебным пособием для системных программистов.
Основная цель — показать возможность создания эффективного антивируса с открытым исходным кодом, использующего методы эмуляции, которые тогда применялись только в коммерческих продуктах (Kaspersky, Dr.Web).
В комплект каждой версии программы, входят полные исходные тексты (на языке ассемблера под операционую систему win32), с максимальным количеством комментариев на русском языке.
Что нового по сравнению с версией 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
- Позволяет анализировать точку остановки эмулятора
Скачать
Дополнительные материалы
При разработке программы использовались следующие материалы:
- Hard Wisdom - Формат исполняемых файлов PortableExecutables (версия 1.3.0 от 6 августа, 1999г).
- Климентьев К.Е. aka DrMad - Данные формата файлов PE (использованные исходные тексты программы DullPro).
- Hayras - Функции работы с консолью.
Хочется поблагодарить вышеуказанных людей!
Автор: Andrei Agafonov