Если вдруг открылся люк,-
Не пугайся, это - глюк.
Если горб у Диззи вырос,-
Будь уверен, это - вирус.
ЗАНИМАТЕЛЬНАЯ ВИРУСОЛОГИЯ.
Александр Десятниченко
г.Сумы 15.01.1997.
Special for ZX POWER.
________________________________
Прочитав бред, написанный в
эпиграфе, кто-то рассмеется и
скажет, что на Speccy ни о каких
вирусах не может быть и речи,что
бактерии ползают только по мо-
демным проводам и питаются вин-
честерами. Признаться, когда год
назад я впервые столкнулся с ви-
русом, то меня это тоже сильно
разсмешило. Наверное, я бы даже
уже успел и забыть вскоре об
этой истории, если бы не замет-
ка "ВОТ ТЕ РАЗ!" в первом номере
ZX Power, которая убедила меня в
том,что вирус мне не приснился и
не "выглюковался" из музыкалки,
что это действительно не однора-
зовый прикол из области "черно-
го" юмора, а специально ехидно
разработанное нечто,направленное
на развитие чувства бдительности
у каждого синклериста.
Дело было в начале 1996-го
года. Я просматривал новые прог-
раммы на дискетах, которые приш-
ли с Винницы, - запускал по оче-
реди игрушки и музыкалки, выби-
рая, что из них оставить, а что
стереть. Когда же дошло до копи-
рования,то я, к своему ужасу,
увидел, что каталоги на двух
дискетах несколько видоизмени-
лись, а программы перестали ко-
пироваться, хотя так же нор-
мально стартовали и работали.
Все бейсик-файлы стали одинако-
вой длины (что-то около 4кБт), а
кодовые блоки переименовались
под имя основного бейсик-загруз-
чика и поменяли свой тип на циф-
ру. Лихорадочно загрузив диск-
доктор, я начал вручную восста-
навливать самые интересные прог-
раммы, но потом, присмотревшись
повнимательнее к тому, что оста-
лось от каталога, я увидел,что в
нем остались все старые данные
как о бейсиках, так и о кодовых
файлах, только они помечены, как
удаленные.Восстановив в каталоге
их и удалив все новообразования,
удалось вернуть диску его перво-
начальное состояние. Можно ска-
зать,что вирус оказался безвред-
ным, так как ничего не портил в
самих данных,- прогулялся только
по каталогу. Теперь осталось
только выяснить,в какой же прог-
рамме он был встроен. Точно уже
не помню, но я обнаружил его в
загрузчиках какой-то игрушки и
музыкалки FUCK to MUDAK DEMO. К
сожалению, сам вирус я не сохра-
нил для истории, так как не ду-
мал о том, что это может пред-
ставлять определенный интерес и
что вообще к вирусам на Speccy
можно относиться серьезно. Мог
ли я тогда предположить, что,
спустя год, этот вопрос станет
таким актуальным...
Исходя из того,что вирус,опи-
санный мною, отличается от виру-
са, описанного в прошлом номере
журнала,и из того, что было обе-
щано описать еще один вирус,мож-
но предположить, что с развитием
модемных сетей на ZX-Spectrum и
подключением IDE-винта колличе-
ство вирусов значительно возрас-
тет, так как для их написания
достаточно минимальных познаний.
Такую программку состряпает лю-
бой хакер,знающий, как нужно об-
ращаться с CALL 15635, чтобы на
диск выгрузились нули или ругань
на всех известных и неизвестных
языках. К тому же, вероятно, эта
экзотическая отрасль кодерства
будет все время совершенство-
ваться и, учитывая то,что хакер-
кодер-синклерист по своей изо-
бретательности и профессионализ-
му стоит на порядок выше любого
IBM-овского сисопа, это может
привести к самым непредсказуемым
последствиям.Как и в обычной ме-
дицине, наиболее эффективным ме-
тодом борьбы с бактериями явля-
ется профилактика заболеваний.
Давайте попытаемся вместе с Вами
представить эволюцию вирусных
технологий, чтобы во всеоружии
встретить это наваждение.
Итак, в первую очередь, я ду-
маю, что такого типа вирусы бу-
дут встраиваться в boot'ы. Поче-
му? Потому, что любой boot нахо-
дится,как правило, в начале дис-
ка и по-любому читает нулевую
дорожку. Таким образом,никому не
покажеться странным то, что он
обращается к нулевой дорожке.
Сразу же после чтения boot смо-
жет незаметно для пользователя
внести изменения в каталог,пере-
писав его. Конечно,если програм-
мы после этого перестанут гру-
зиться, пользователь немедленно
выбросит этот boot.Поэтому такие
программы, скорее всего, будут
вносить изменения только в ката-
лог, делая диск некопируемым для
рядового пользователя. Разумеет-
ся, что более опытный пользова-
тель сразу же заметит изменения
в структуре каталога и примет
соответствующие меры.Значит,сле-
дующим шагом станут не вирусы
немедленного действия, а "выжи-
дающие" вирусы. Как это будет
выглядеть? Я думаю, что так: в
вирусе организовывается счетчик
чтений с диска и,каждый раз,ког-
да будет производится чтение ка-
талога, вирус будет читать неза-
действованный сектор нулевой до-
рожки, изменять проверочный байт
в нем (например, увеличивая его
значение) и, когда это значение
станет равным, например, 50 чит-
кам, вирус запарывает несколько
дорожек на диске или переимено-
вывает имена файлов на приветы
знакомым хакерам, снова обнуляет
счетчик... Таким образом, сам
boot как бы выпадает из подозре-
ния, - грузились себе программы
целую неделю,а потом испортились
(" ...наверное, дискета попалась
хреновая"),при перезаписи boot'а
на другой диск он, вроди бы, ни-
чего не портит... Разумеется,сам
вирус будет сидеть в программе
хорошенько спрятанным, например,
перексоренным, в виде таблички
движения спрайтов или символов
font'а... Как же защититься от
такой беды? Ну,очевидно, так же,
как женщина защищается от неже-
лательной беременности, - за-
клеиться! Другими словами, деви-
зом дня должно стать: "Записал
дискету - заклей окошко!"
Ну что, предсказываем дальше?
Представьте себе, - вы играете в
подгружаемую игру, проходите ее
до конца, она грузит FINAL CUT и
незамедлительно переписывает не-
сколько дорожек после него. Или
вы отгружаете на диск таблицу
рекордов и, если ваше имя в ней
находится выше, чем имена авто-
ров, то каталог диска подлежит
формату... Или вы отгружаете от-
ложенное состояние, копируете
файлы операционной оболочкой,вы-
полняете любые другие действия с
помощью программы, совершающей
запись на диск... Как не заклеи-
вайся, а, чтобы что-то записать,
придется разклеиваться. Я уже
совсем молчу о методах прямого
программирования ВэГэшки, с по-
мощью которых вирус может орга-
низовать счетчик обращений к
диску вообще где-то между секто-
рами, к тому же, не всякий даже
очень опытный хакер сможет отыс-
кать такой вирус в системной
программе, где все процедуры по-
строены на этом методе.А еще хо-
дят слухи, что идут эксперименты
по записи на заклеенный диск...
Конечно, все вышеперечислен-
ные примеры вряд ли можно счи-
тать настоящими вирусами,так как
они не способны размножаться.
Ведь для размножения вирусу нуж-
но, как на IBM, присоединиться к
файлу и снова записаться на диск
вместе с ним,а на Spеctrum'е это
сразу же станет заметным.Что мо-
гут придумать в этой области?
Ну, например, вирус может присо-
единиться только к последнему
файлу или же, если сам вирус ко-
роче 255 байт,он может записать-
ся в свободное место на послед-
нем секторе файла.А теперь самое
крутое,от чего я хотел бы предо-
стеречь, - вы сами можете стать
автором вирусоносной программы,
даже не подозревая этого! Пред-
ставьте себе, - вы пишете прог-
рамму на ассемблере со встроен-
ным автором ассемблера вирусом и
набиваете такую строчку:
CALL 15635. Во время трансляции
же, незаметно для вас,CALL 15635
заменивается на CALL addr, где
addr - адрес подпрограммы, под-
соединенной транслятором,в кото-
рой вирус "пушает" все регистры,
вытворяет с вашим диском все,что
ему угодно, снова "вспоминает"
значения регистров, делает ваш
CALL 15635 и RET. Таким образом,
если не просмотреть оттранслиро-
ванную программу в дизассембле-
ре, а сразу же выпустить ее, то
попробуйте тогда доказать, что
это не вы написали вирус. Еще
кошмарнее будет работать вирус,
подсоединяемый в дебуггере, - вы
отладили программу, а отладчик
внес в нее свои изменения и за-
писал на диск. Когда вы снова
загружаете в него эту же, но уже
зараженную программу, то он сам
определяет по своей метке,что
уже здесь побывал, убирает все
свои следы и замыливает вам гла-
за неиспорченной программой, а
перед записью снова творит свое
дело... Что же делать авторам
системных программ,- выводить на
экран табличку с надписью при-
мерно такого содержания: "Автор
программы гарантирует, что его
продукт абсолютно свободен от
вирусов и готов выплатить ком-
пенсацию в случае..."и т.д.? Да,
думаю, что этой своей статьей я
многим кодерам не дам спокойно
спать, - одни будут по ночам та-
кие вирусы писать, другие - их
искать, а третьи - выпускать все
новые и новые антивирусы.Поисти-
не неисчерпаемы возможности ге-
ниального изобретения К.Синкле-
ра! Хотя, признаться, мы сами в
этом виноваты,ведь этот лорд да-
же и представить себе не мог,что
кому-то взбредет в голову под-
ключить к Spectrum'у винчестер,
модем и качать вирусы.
Но не все так плохо,как я на-
фантазировал, ведь Spectrum все
же не IBM и эпидемия даже самого
крутого вируса, думаю, нам не
грозит. Вместо итога я хочу об-
ратиться ко всем пользователям с
пожеланием,- если кто-нибудь об-
наружит у себя такой вирус, то
пусть он не разпостраняет его со
всем присущим злорадствием,а со-
общит своим собратьям о програм-
мах, его содержащим. Хочу по-
желать успеха Вам и журналу
ZX Power, который первым взялся
за освещение этого нового вопро-
са.
От редакции:
К сожалению по техническим
причинам мы не смогли выполнить
обещание, данное в прошлый раз,
но торжественно обещаем вернуть-
ся к данному вопросу в следующих
номерах нашего с Вами журнала. А
Вы, дорогие читатели, помогите
нам в этом: напишите о своих
встречах с вирусами, как со ста-
рыми, так и с новыми,и неколеба-
ясь высылайте "зараженные" диски
в адрес нашей редакции,указанный
в разделе "Авторы", для более
подробного изучения и возможно
нахождения вакцины! Диски будут
возвращены их владельцам.
Будем ждать Ваших писем!
________________________________