╔════════╤════════════════════════════════════════════════════╤══════════╤═══╗
║Okt 1999│NF представляет электронный журнал MooN BuG issue 11│  RedArc  │013║
╟────────┴────────────────────────────────────────────────────┴──────────┴───╢
║                            Вирус HLLA.c0mmAnd0s                            ║
╚════════════════════════════════════════════════════════════════════════════╝

     Давно  я  хотел  сделать  что-то  подобное.  Сегодня вот весь вечер убил,
однако сил не хватило сделать еще одно извращение... Но обо всем по порядку.

     Этот  HLL-вирус,  производит  поиск  и инфицирование EXE-файлов в текущем
каталоге. Является полиморфик-вирусом. Суть заражения:
 -  ищет  в  текущем  каталоге  файлы с расширением EXE с выключеным атрибутом
ReadOnly и размером меньше 200Kb;
 - архивирует найденный файл с помощью ARJ, делая SFX-архив;
 - в SFX-архив добавляются так же:
   - архиватор
   - тушка вируса
   - декриптор
   - архиватор декриптора
 - имена файлов в SFX-архиве генерируются случайно;
 -  со случайным именем тушки и с расширением INF добавляется файл, содержащий
имена заархивированных файлов (регистрационная запись);
 - SFX-архив закрывается случайным 12-символьным паролем;
 - в декриптор вносятся следующие изменения:
   - имя тушки в архиве
   - текущий пароль
 - декриптор архивируется с помощью EXE-компрессора;
 - декриптор записывается в начало SFX-архива.

     При   старте  инфицированного  файла  управление  получит  декриптор.  Он
расшифровывается в памяти, восстанавливает SFX-архив на диске, исполняет его с
передачей  пароля,  запускает тушку вируса. Тушке вируса передаются в качестве
параметров командной строки:
 - имя инфицированного EXE-файла;
 - параметры при запуске инфицированного EXE-файла.

     Получив   управление,   тушка  вируса  создает  временный  каталог,  куда
переносит  все  составные  части, необходимые для дальнейшей работы и вытирает
INF-файл.  После этого производится запуск жертвы с передачей ей параметров из
командной  строки.  Для  этого  инфицированный  SFX-архив переименовывается, а
чистый  SFX-архив  удаляется.  Жертва  переименовывается  в начальное имя и ей
возвращаются   дата  и  атрибуты.  После  работы  жертвы  -  она  удаляется, а
инфицированному SFX-архиву возвращаются все атрибуты жертвы.

     После  этого  вирус  производит  поиск жертв в текущем каталоге, копирует
каждую  найденную  жертву  в  свой  временный  каталог и там инфицирует. Затем
инфицированный  файл  записывается  поверх  оригинального  файла.  В принципе,
инфицированный  файл может оказаться размерами меньше, чем оригинальный. После
работы  вирусы  удаляет  все  файлы  из  временного  каталога  и сам временный
каталог.

     Вобщем,  получили  симбиоз  языков ;-) Тушка вируса написана на Pascal'е.
Декриптор  -  на  ASM. На чем написаны ARJ и LZEXE я не знаю. Думаю, что на C.
Полиморфизм  вируса  заключается  в  архивации  тела  и жертвы (это уже разные
байтики  в  архиве)  со  случайными именами и со случайным паролем (что и было
самым  интересным).  Вобщем  то  было  бы  интересно  еще  и декриптор сделать
полиморфным  ну хотя бы с помощью HLL_VCG, но у меня руки не дошли. Может быть
у вас дойдут? В принципе, можно просто дописывать в конец несжатого декриптора
случайное   количество   байт,   делать   пробное   сжатие  с  помощью  LZEXE,
модифицировать  в  несжатом  декрипторе  слово, указывающее на длину сжатого и
все  будет  пучком.  Исходники сюда пихать не буду, ибо большие они. Они будут
лежать в APPENDIX.RAV\HLLA.BIN\, там их и посмотрите.