ZX Power
#03
31 декабря 1997 |
|
Разное - Вирус в IS-DOS.
5mD ВИРУС В ИС-ДОС(C)1997 Mechanic ________________________________ Слыхал, что некоторые считают вирусы наSpectrum'е несерьезной вещью. Действи-тельно, когда речь идет о "Tape LoadingError System", разговор о вирусах неумес-тен. Но вот когда речь заходит о TR-DOS,IS-DOS, или другой системе, где любаяпрограмма в состоянии дотянуться до данныхи программ, абсолютно ее не касающихся, ноимеющих почетное звание ее соседей по на-копителю, поговорить о вирусах приходится. КАК Я ВСТРЕТИЛ ЕГО Как-то раз, разбирая новый дистрибутивс программами к IS-DOS Classic 4.5, я си-дел и запускал по очереди все *.com файлы,которые только мог. И вот, совершенно слу-чайно, обнаруживаю, что одна программа изчисла моего верного проверенного софтавдруг изменила длину. Заметить эту мета-морфозу помогло то, что прогу-то эту напи-сал я сам, и прекрасно помню, что в нейникак не может быть 2 блока длины... Тут меня "пробило" - Вирус! Настоящий! Вспоминаю, чего в таких случаях совето-вал Фигурнов в своих учебниках, и аккурат-но копирую файл на пару дисков, которыхмне не очень жалко (шутка ли - живой су-постат :-о ). Потом перегрузился на старуюиспытанную версию от 24.4.94 и начал изу-чать "трофей". То, что было найдено в этом файле, былоименно тем, чего я там и искал. Там сидел... да-да, именно вирус, самый такой себенастоящий. Сперва я конечно дико обрадо-вался: "Ура.. Наконец-то.. Свершилось..Теперь и у нас..", а потом - "Идиот! Чемурадуешься?!". Вот здесь я начал понимать,что теперь все, кому не лень, станут пи-сать подобные "микрософты" и совать их ку-да ни попадя. Мне же придется теперь бо-роться с новой проблемой, без которой, на-верняка, было бы скучнее, зато - спокой-нее. Раньше мне уже попадались программы,умеющие делать всякие пакости, но они неразмножались, как всякий нормальный вирус.Этот же в заражаемом файле создает своюточную копию, так что сложно понять, ктоименно кого заразил. Раз уж принято софт такого рода назы-вать либо именем автора, либо именем док-тора, нашедшего способ лечения, а авторуказан не был, то паразит был названvir00mc. Так как зараженные файлы я обнаружилеще в 2х других каталогах, то пришлось на-писать к нему антивирус, который и прила-гаю в надежде, что его поместят в приложе-ние. КТО ЖЕ ОН ТАКОЙ Сама по себе программа совсем безобид-ная - вся ее работа состоит в том, чтобызаразить файл своей копией. Она не пытает-ся писать ругательства, форматировать дис-ки, перекачивать пароли по E-mail :) ит.д. Просто так случилось, что при дописы-вании вируса к программе exebat.com пос-ледняя теряет работоспособность - вся ееработа сводится к сбросу системы. Обуслов-лено это тем, что exebat (и некоторые дру-гие программы) имеют критичную длину файлаили другие особенности, мешающие им кор-ректно работать с подобным "довеском". Реагирует вирус на файлы с расширениемc?m (com, cum, cam etc), которые при за-пуске зараженной программы находятся в те-кущем каталоге. Текущий каталог - тот ка-талог, в котором находится курсор (описа-тель которого сидит в векторе файловойслужбы), и вовсе не обязательно, что зара-женный *.com запустился именно из него.Так вирус путешествует по каталогам иустройствам. Номер файла-жертвы берется из счетчикапрерываний клавиатурного драйвера и округ-ляется до 32. Для нормального зараженияфайла, открытого таким образом, первые 3байта в нем должны содержать команды LD C,НОМЕР_РЕСТАРТА RST #10 ,с которых начинается львиная доля всех*.com файлов в ИС-ДОС. К тому же все опе-рации чтения/записи должны пройти без оши-бок - при возникновении любой ошибки приработе вирус тотчас отдает управлениепрограмме-носителю. Использование счетчика прерываний обес-печивает случайность заражения файла, ведьне каждый же раз там сидит именно нужныйc?m. После открытия и определения наличия вначале файла нужных команд, вирус заменяетих командой CALL ВИРУС, вычисляет необхо-димые смещения (для CALL ВИРУС - тоже),удлиняет файл-жертву на 255 байт (иногдадля этого ему приходится перевести файл всегментированный вид) после чего подготав-ливает свое тело для выгрузки, запоминаетв нем все необходимое уже для нового виру-са, выгружает новую свою копию в удлинен-ный файл, восстанавливает номер рестарта всвоем теле для корректной работы своегособственного носителя (не только что зара-женного), скрывая следы работы, вызываетрезидента командой @calc, открывает файл,что был открыт до запуска вируса (его но-мер был предусмотрительно считан из$FNUMB), и, наконец, возвращает управлениеносителю, выполнив сперва за него украден-ную команду из начала файла. Интересно, что первая команда невосстанавливается, и теоретически возмож-но, что зараженный *.com при неоднократномперезапуске из точки входа сможет заразитьнесколько файлов с одной загрузки в па-мять. При работе vir00mc использует вирту-альный диск, рестарты уровней DOS, DUD иCOM, а также вызывает резидентную задачу.И все это в 255 байтах! Остается лишь сказать, что вирус напи-сан действительно Классно, и выразить заэто благодарность его создателям. По поводу защиты от вирусов в ИС-ДОСмогу посоветовать чтение подобных инструк-ций для пользователей IBM PC [заменяя "IBMPC" на "ZX-Spectrum", а названия ненапи-санных еще программ :( сопровождать пе-чальным вздохом]. Все остальные указанныетам меры предосторожности не будут лишни-ми. Хочу надеяться, что редакция ZX-POWERбудет продолжать собирать и знакомить чи-тателей с новинками вирусной индустрии,что должно сохранить всем кучу времени инервов. С уважением,Mechanic/X-Project E-mail:konstantin_k@hotmail.com________________________________0 и 1725000
Другие статьи номера:
Похожие статьи:
В этот день... 9 декабря