- [Duke's Virus Labs #4] - [Page 18] - Журнал D V L # 4 представляет: Duke's Pascal Virus Generator v0.20 (c) by Duke/SMF DPVG - это конструктор, позволяющий создавать исходные тексты нерезидентных Overwriting, Worm или Companion вирусов на языке Pascal. Данная редакция является усовершенствованной, существенно дополненной и исправленной версией конструктора DPVG v0.10 (см. статью 19 в журнале DVL #3). В этой версии исправлена ошибка при поражении по PATH, добавлена опция дописывания мусора в конец HLLO-вирусов и добавлена возможность создания HLLC-вирусов. Комплект поставки конструктора DPVG : ------------------------------------- * DPVG.EXE - исполнимый файл программы * DPVG.CFG - пример конфигурационного файла * DPVG.TXT - описание работы с конструктором * EXAMPLE?.PAS - исходник вируса HLLO/HLLW/HLLC.DPVG.Demo, написанного на DPVG * EXAMPLE?.CFG - конфигурационный файл для вируса HLLO/HLLW/HLLC.DPVG.Demo * EXAMPLE?.EXE - готовый вирус HLLO/HLLW/HLLC.DPVG.Demo Возможности конструктора: ------------------------- - создание HLLO-вирусов поражающих COM, EXE, COM & EXE файлы или HLLW-вирусов, поражающих ARJ, LZH, RAR и ZIP архивы или HLLC-вирусов, поражающих EXE файлы - различные варианты процедур заражения - поражение вирусами за один запуск выбранного количества файлов - возможность проверки и не заражения файла COMMAND.COM для HLLO-вирусов - возможность подключения собственных спецэффектов - возможность обработки вирусами атрибута Read-Only - возможность вывода вирусами текстовых сообщений - возможность оптимизации размера вируса Создание вируса: ---------------- Для того, чтобы создать с помощью DPVG работоспособный HLLO/HLLW/HLLC-вирус, необходимо выполнить следующие действия: 1) заполнить конфигурационный файл DPVG.CFG (с правилами его заполнения и назначением пунктов вы можете ознакомиться ниже). Предположим, что текст вируса будет записываться в файл VIRUS.PAS. 2) запустить конструктор с параметром: DPVG.EXE DPVG.CFG 3) откомпилировать полученный PAS-файл с помощью компилятора Turbo Pascal (tpc.exe) или Borland Pascal (bpc.exe): TPC.EXE VIRUS.PAS или BPC.EXE VIRUS.PAS 4) если вы указали в конфигурационном файле опцию H=N, то необходимо: a) посмотреть размер полученного файла VIRUS.EXE и вписать ее в файл VIRUS.PAS в строку "VirusSize=", вместо стоящего там числа 3500; b) снова откомпилировать файл VIRUS.PAS (как это делалось в пункте 3) После этого 100% работающий вирус готов! Правила заполнения конфигурационного файла ------------------------------------------ Генератор DPVG v0.20 не имеет диалоговой оболочки и "общение" с пользователем проходит через конфигурационный файл. Строки конфигурационного файла, начинающиеся с символа ";", генератором игнорируются. Секция общих данных (заполняется всегда!) : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * 0 * Обозначает тип создаваемого вируса. Возможные варианты: 0=O - HLLO (overwriting virus) 0=W - HLLW (archive worm) 0=C - HLLC (companion virus) * A * Это строковая величина, содержащая имя вируса (например, A=DemoVirus). * B * Это строковая величина, содержащая имя автора вируса (например, B=Duke/SMF). * C * Имя файла, в который будет записываться исходный текст вируса на паскале (например, C=virus.pas). * D * Числовая величина, обозначающая число файлов, поражаемых за один запуск. Если необходимо поразить все найденные файлы (текущего каталога или пути), то необходимо поставить D=0 * E * Этот переключатель отвечает за атрибуты поражаемых файлов. Возможны следующие варианты: E=Y - поражать файлы с атрибутом Read-Only (т.е. поражаются файлы c атрибутами $21) E=N - не поражать Read-Only файлы (т.е. поражаются файлы с атрибутами $20) * F * Переключатель способа заражения файлов, допускающий дла варианта: F=Y - использовать COMMAND.COM для заражения файлов. При этом размер созданного вируса получается более большим. F=N - не использовать COMMAND.COM, а использовать собственные процедуры для заражения файлов. При этом размер созданного вируса будет поменьше. * G * При завершении работы вируса выводить на экран указанные в этом параметре текстовые строки. Количество строк "G=" не должно превышать 25 . Чтобы никаких сообщений не выводилось, необходимо оставить строку "G=" без значения. * H * Подключение файла со спецэффектами. К вирусу могут подключаться только процедуры, оформленные в виде: procedure имя_процедуры;{без параметров} begin {тело процедуры} end; Если для работы процедуры требуются другие модули, помимо dos.tpu, то их надо подключить в файле с процедурой. Формат записи: H=имя_файла#имя_процедуры Если оставить строку "H=" без значения, то ничего не подключается. * I * Переключатель, отвечающий за оптимизацию кода вируса и допускающий два варианта: I=Y - в исходный текст вируса добавляется строка, уменьшающая размер откомпилированного вируса I=N - оптимизация по размеру файла не производится * O * Размер дописываемого в конец вируса мусора. При этом длина потомков вируса будет изменяться от размера вируса до размер+указанное значение. Если O=0 , то мусор не дописывается. * P * Поиск и заражение файлов в каталогах переменной PATH. Возможны варианты : P=Y - поражать по PATH P=N - не поражать по PATH Эта секция заполняется при создании HLLO-вирусов : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * J * Тип файлов, которые будут поражаться вирусом. Возможные варианты: J=C - поражение *.com файлов J=E - поражение *.exe файлов J=B - поражение *.com и *.exe файлов * K * Метка (идентификатор) зараженности файла. Должна состоять из двух символов (например, K=M$). * L * Переключатель отвечающий за проверку файлов перед заражением. Учитывается генератором только в том случае, когда J=C или J=B . Возможны два варианта: L=Y - проверять имена найденных файлов и не заражать COMMAND.COM (иначе при заражении COMMAND.COM вирусом перестанет загружаться машина) L=N - поражать все подряд файлы без проверки Эта секция заполняется при создании HLLW-вирусов : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * M * Тип поражаемых архивов. Возможные варианты: M=A - ARJ M=L - LZH M=R - RAR M=Z - ZIP В одной строчке можно указать несколько букв, например M=ArLz * N * Под каким именем записывать червя в архив. Если оставить строчку пустой, то червь будет записываться со случайным именем и расширением COM или EXE Эта секция заполняется при создании HLLC-вирусов : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (К сожалению, опции отмеченный знаком "-" в данной версии не реализованы) * Q * Тип поражаемых файлов Q=E - поражать *.EXE - Q=C - поражать *.COM - Q=B - both (т.е. поражать и *.EXE, и *.COM) * R * Способ поражения R=1 - поражать EXE-файлы путем создания одноименного COM-файла (только при Q=E) - R=2??? - переименовывать жертвы в файл с расширением ??? - R=3??? - переименовывать жертвы в файл с расширением ??? и запускать ??? * S * Шифрование куска жертвы S=Y - да, шифровать S=N - нет, не шифровать Об использовании DPVG --------------------- Автор конструктора DPVG оставляет за пользователями право модифицировать по своему усмотрению содержимое сгенерированных конструктором вирусов, оставляя при этом в исходном тексте вируса строку "Generator:='[DPVG v0.20]';".