Обмен опытом - о вирусе в игре Last Battle. Как написать свой вирус.

Adventurer #06
╔═══════════════════════════════════════╗
│ ──────────── В И Р У С Ы ──────────── │
╚═══════════════════════════════════════╝

     Речь в этой статье пойдет не о прог-
паммах  VIRUS  и  VIRUS II, а о настоящих
компьютерных вирусах, ну прям, как на iBM
PC !
     Долгое время считалось, что в систе-
ме TR-DOS вирусы быть  не  могут  (что, в
принципе, верно).  Вернее,  вообще счита-
лось, что  вирусы  -  это удел PC.  И вот
прошла информация, что в игре LAST BATTLE
есть вирус !!!! Проверив сведения, я убе-
дился в этом.
     Вообще-то вирусы в TR-DOS  не совсем
правильные,  настоящие  вирусы всех видов
на  SPECCY  можно  организовать только  в
системах  iS-DOS  и  CP/M  (не зашитых  в
ПЗУ).  Если  не  считать модели SCORPION,
ATM, PENTAGON 512K + "теневое ОЗУ" вместо
принтерной  ПЗУшки,  то  в системе TR-DOS 

можно  написать  ТОЛЬКО  файловые вирусы,
запускающиеся  перед  исполнением зараже-
ной программы. Резидентные вирусы в стан-
дартном SPECCY невозможны.
     В связи с особенностями SPECCY и TR-
DOS (т.е. запускаемые только BASIC-файлы)
заражение кодовых блоков нереально и воз-
можно заражение только BASIC-файлов. Тех-
нология заражения проста:
1) ищется BASIC файл;
2) проверяется  на  наличие вируса и если
его там еще нет, то на свободное место на
диске записывается тело вируса,  в  заго-
ловке  файла изменяется длина и начальный
трек/сектор  файла  и  сохраняется в теле
вируса нормальные  длина  и  трек/сектор.
Затем в первую строку  BASIC'а  заносится
переход  на  запуск вируса. Опосля  изме-
ненная  информация пишется на диск и воз-
вращается  управление  той программе,  из
которой вызывался вирус.
     Недостатки такого  вируса  очевидны.
К  ним   можно  отнести  изменение  длины
BASIC-файла  (в секторах),  невозможность

заразить программы  на  другом  диске (на
системах с одним дисководом) и  невозмож-
ность заражения других программ,  если на
диске нет места или в данных о диске ука-
зано,  что  нет свободного  места. Также,
если вы реализуете вирус по вышеприведен-
ной схеме, то он при копировании  на дру-
гой  диск  не  будет  работать.  В   Last
Battle вирус работает по несколько другой
схеме, хотя и очень похожей. После запус-
ка  вируса,  он,  в  первую очередь, ищет
boot  и  пытается  заразить  его и только
после  этого делает свои дела дальше, т.е.
ищет BASIC-файлы.  При  поиске происходит
проверка  длины  файла в секторах, и если
длина достаточно большая, то заражения НЕ
ПРОИСХОДИТ (вот и ответ тем,  кто записал
кроме "бутыли" еще какие-нибудь  геймы  в
монолоадерах).  При проведении  не  очень
тщательной проверки было  определено, что
размера  в 18 секторов и больше достаточ-
но,  чтобы программа приобрела иммунитет.
Если же файл подходит по размеру,  то  он
проверяется  на  зараженность (в проверке

участвуют всего три байта) и если не  за-
ражен,  то  начинается  самое интересное.
Первая  строка  проги  изменяется  с тем,
чтобы обеспечить  запуск  вируса, генери-
руется тело вируса,  соединяется с  зара-
жаемой  программой  в  блок, равный длине
BASIC'a в секторах + 8 и записывается это
дело на свободное место на  диске.  После
этого корректируется каталог диска и  все
повторяется снова, до тех пор, пока ката-
лог не будет исчерпан. Теоретически,вирус
из "бутыли" способен за один раз заразить
все BASIC-файлы на диске.
     Как видите,вирус в общем-то простой,
но даже в том виде как сейчас,  он  может
доставить неприятности. Приведу один при-
мер  из  жизни : пришли к нам от Flash'eй
диски с системками, и оказалось, что нес-
колько  (может  в  начале одна) инфициро-
ваны  "пьяным джинном" (мое название это-
го вируса  /по-моему, звучит/).  Хотя  он
с них никак  себя не  проявил,  RAY, имея
печальный  опыт  общения  с "пьяным джин-
ном", решил произвести курс лечения. Тех-

нология  была  проста  :  стартуем BASIC,
тормозим  его,  и если получилось то, что
мы ожидаем увидеть, то отгружаем BASIC на
чистый диск.  Вот  и  все лечение. Кто не
сможет  произвести лечение сам, приносите
(присылайте) нам, мы поможем.
     Подведем итоги : вирусы на Спектруме
есть.  Известен  один  вирус,  написанный
HACKER SQUAD ("пьяный джинн").  Отличите-
льные черты : увеличение  длины  на  8 (в
секторах),   заражение   только  коротких
BASIC-файлов, увеличение времени загрузки
зараженной  программы.  Впервые  появился
в  игре "Last Battle".  Редакция  журнала
приглашает  всех  желающих высказатся  по
поводу вирусов на страницы ADVENTURER'a.

ADV: Кстати,  у  нас есть  упакованная  и
обезвирусенная  (во,  сказанул!)   версия
LAST BATTLE. Ежели кому надо...

          ────────────────────── 

               (C) SHRSOFT