·─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 -- основной модуль (пермутация плугинов)

 ············································································