╔════════╤════════════════════════════════════════════════════╤══════════╤═══╗
║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\, там их и посмотрите.