·─T─┌O┐─T─┌A┐L···─Z┐┌0┐┌M┐┌B·i┌F─i┌C─┌A┐─T─i┌O┐┬N┬··························
│ │ │ │ ├─┤│ / │ ││││├┴┐┬├─ ┬│ ├─┤ │ ┬│ ││└┤ Issue #1, January-2001
··│·└─┘·│·│·│└─··└──└─┘│·│└─┘││··│└──│·│·│·│└─┘│·│··························
············································································
ПЛУГИННЫЙ ВИРУС (PLUGIN VIRUS PROJECT) [pgn118.zip]
············································································
Эта вещь уже вроде-бы публиковалась на TopDevice'е и в 29A; однако
этот билд чуть более навороченый и пофиксеный; также добавлена пермутация.
Напомню, что PGN -- это большой проект по созданию вируса, целиком
состоящего из отдельных модулей - плугинов.
Плугины взаимодействуют через события, каждое из которых посредством
специального плугина - лоадера передается всем остальным.
В принципе, все эти плугины было бы лучше написать на C++ с вызовом
событий в виде cdecl-процедур, а не <mov eax,#/call ebp>.
Плугинная технология позволяет заменить любой плугин или добавить к
вирусу новый, не перекачивая весь вирус целиком. Да, конечно, сегодня у
всех крутые компы и крутой инет. Но разница между 50-килобайтным буфером и
двумя-тремя uue-подобными строчками была, есть и будет.
Из приведенных ниже плугинов можно собрать один большой вирус, а можно
много маленьких вирусов различных конфигураций. Два таких вируса с
небольшим числом плугинов могут обменяться ими, изменив свои свойства на
уровне алгоритма.
Еще раз: Мистфаль и Z10 -- это полная мутация на уровне кода, там наш
алгоритм может быть составлен из самых разных инструкций. Плугинная же
технология, уделяя мало внимания коду, направлена именно на мутацию
алгоритма.
СПИСОК ПЛУГИНОВ:
СОБЫТИЕ ПЛУГИН ОПИСАНИЕ
~~~~~~~~ ~~~~~~ ~~~~~~~~
01xx LOADER лоадер, основной обработчик событий.
через него общаются все плугины.
02xx K32MAN менеджер kernel'овских функций,
используется для получения адресов апишек.
03xx RING0 вход (или выход) в ring0
04xx TSR резидентность
05xx IFSCALL менеджер IFS-вызовов
06xx UNCALL возвращалка VxDcall'ов в исходное состояние
07xx R0IO менеджер файловых функций под R0
09xx MEMORY универсальный (R0/R3) менеджер памяти
0Axx PENTRY точка входа в PE файл
0Bxx EXTMAN менеджер обрабатываемых расширений
0Cxx INFECT1 инфектор файла: вставка в начало первой секции
0Dxx R3IO менеджер файловых функций под R3
0Exx RECSERCH рекурсивный поиск файлов, R3 (windir, path, etc.)
0Fxx PERPROC запускает вирусную нить в текущем процессе
11xx KILLAVXD убивает AV VxD
12xx PECSUM пересчет контрольной суммы PE файлов
13xx PLUGMAN менеджер плугинов (добавить/заменить плугин)
15xx ADDPGN поиск/добавление новых плугинов при скане винта
16xx BEEP win9X: BEEP на каждом событии (тестовый плугин)
17xx LDE32 LDE32 - дизассемблер длин
18xx PERVERT CODE PERVERTOR, извращатель кода
19xx RANDOM рандомер
1Axx ADDPGNX добавляет RSA-зашифрованные плугины (нужен ADDPGN)
1Bxx RSALIB RSA-шифрование (процедура возведения в степень, modexp)
1Cxx RSAKEY содержит RSA-ключ (числа E/N)
1Dxx FUCKICE охуячивает софт-айс (r0)
1Exx DEBUG посылает имена событий в отладчик (см. evlist.inc)
1Fxx SYSTEM некоторые системные функции, относятся к PGN-структуре
20xx UNPROT разлочивает станички памяти в кодовой секции PE файла
21xx IFSHAN хандлер IFS в r0
22xx ADDPGNU расшифровщик UUE-RSA-зашифрованных плугинов (+ADDPGN/X)
23xx ARCLIB обработчик RAR/ZIP архивов
24xx DROPPER содержит запакованный дроппер
25xx DROPRUN запускает оригинальный exe (когда распакуют архив)
26xx SELFCORR самокоррекция (от патча)
27xx MAINDMK основной дроппер - создать и зарегистрировать
28xx MAIND основной дроппер - код
29xx DPGN расшифровывает "отложенный плугин"
2Axx DPGNDAT содержит зашифрованный "отложенный плугин"
2Bxx EXPLORER заражает explorer.exe и т.п. через wininit/movefileex
2Cxx AAV анти-анти-вирус (патчит антивирусный код)
2Dxx RXIO навеска на файловые операции r0/r3
2Exx MAINDST основной дроппер - стелсирует процесс
2Fxx AAVKILL убивает файлы антивирусных контрольных сумм
31xx BADFILE отфильтровывает хреновые и старые файлы
32xx FASTNAME массив хэшей имен обработанных файлов (для ускорения)
33xx UTIL всякие общие подпрограммки
34xx REGSCAN сканер реестра (на антивирусные записи и имена файлов)
35xx MUSIC играет мелодию
36xx EFFECT запуск эффекта по дате
37xx VOLUME контроль громкости sb
39xx INFMANX "связывает" некоторые плугины для заражения (r0/r3)
3Axx PGNCONT мэнэджер внешнего контейнера для новых плугинов
3Bxx IOHOOKER перехват send/recv/...
3Cxx IODAEMON обработчик потока send/recv
3Exx IOAVFILT хватает connect() и блокирует антивирусные IP-шники
3Fxx VXCW выполняет действия по контрольным словам
42xx THREAD создает новую нить
43xx CWTEST спец-фичи
44xx ALREDY обработчик я-здесь в r0, через порт
45xx R0PROT защищает странички в r0 от доступа из r3
46xx KILLER вызывает факап если дебаггер/пропатчили и т.п.
47xx WALKER сканер системной памяти (для патча антивиров в памяти)
48xx MORPH перемешивает плугины местами и вызывает RPME
49xx RPMEKRN содержит кернел от RPME
4Axx RPMEMUT содержит мутатор от RPME
4Bxx RPME движок RPME -- основной модуль (пермутация плугинов)
············································································