Pull to refresh

Попытка создания неубиваемого вируса

Давно это было, примерно в 1990-ом году. Я тогда был студентом института. И был у нас преподаватель физики, который очень тяготел к системному программированию. Назовем его Дмитрий Борисович, я уже не упомню, как его звали по-настоящему, потому что кличка у него была Мистер Вопросительный Знак за его нескладную фигуру, напоминающую знак вопроса.

У Дмитрия Борисовича была мечта — создать неубиваемый вирус, тогда не было уголовной ответственности за написание вирусов, поэтому все делали всё, что хотели и как хотели.

Да и компьютеры тогда были не то, что сейчас. IBM PC/XT на процессоре 8088 с кнопкой Turbo на морде и монитором марки Hercules, с монохромным экраном ядовито-жёлтого цвета. В распоряжении Дмитрия Борисовича был целый класс, состоящий примерно из дюжины машин. Я там подрабатывал лаборантом, поэтому знаю всю подноготную создания этого чудо-вируса.


Первую версию вируса Дмитрий Борисович честно слизал с вируса Stoned, кто не знает, это тот, который всех призывал Legalize Marijuanna. В то время слыхом не слыхивали о каннабисе, хотя, если выйти из ворот института и пройти метров сто пятьдесят в направлении пустыря, то можно было легко обнаружить заросли конопли. Я там ходил, я знаю.

Сам вирус Stoned был загрузочным и легко убивался популярным в то время антивирусом Aidstest, автор Лозинский, тоже Дмитрий. Это предшественник Dr.Web. И чтобы Aidstest не находил вируса, Дмитрий Борисович поменял там местами пару байт, что привело к нарушению сигнатурного анализа. О слове сигнатура тогда тоже слыхом не слыхивали, но догадывались, что антивирус работает не просто так, а по сигнатуре.

Новый Stoned просуществовал недолго, очередной Aidstest с новой базой начал его убивать, что очень не понравилось Дмитрию Борисовичу, потому что он с этим вирусом носился как с ребенком, отлаживал его самописным дебаггером и всячески лелеял. Семьи у Дмитрия Борисовича, как вы понимаете, не было, а жил он в институтской общаге в аспирантской комнате, свободного времени было много.

И тогда Дмитрий Борисович решил создать неубиваемый вирус. Но он был доктором физмат наук и понимал, что создать неубиваемый вирус нельзя, как нельзя создать всеразрушающее ядро или абсолютно непробиваемую стену. Поэтому он сделал ставку на студентов, которые днями корпели в компьютерном классе, писали лабораторные, курсовые, дипломы. Тогда дома компьютеров не было, потому что они стоили очень дорого, примерно как автомобиль «Волга», мечта любого советского инженера, не то что студента.

Студенты по его плану, должны были сами себя заражать вирусом. Для этого Дмитрий Борисович написал перехватчик 13-ого прерывания, и при записи сектора на диск он заменял два пробела на символ с кодом 0x7, это такой кругляшик, по команде dir издавал противный писк. И так 4 раза. И на освободившиеся 4 байта в конце сектора — ставил свою сигнатуру. Далее при чтении смотрел, если в конце есть сигнатура, тогда все символы 0x7 он заменял на два пробела, восстанавливая сектор.

Таким образом, студенты, которые приходили ко мне в класс писать курсовую, вставляли свой гибкий магнитный диск в дисковод, а там при выдаче каталога по команде dir сразу было видно и слышно по противному писку, что в названии файлов присутствует символ с кодом 0x7, потому что в системе FAT названия файлов, которые имели менее 8 символов в имени и 3 символа в расширении всегда добивались пробелами. И если это было так, значит, студент тут же запускал вирус Дмитрия Борисовича, загрузившись с флоппи-диска. Это чтобы вирус начал расшифровывать каталог и другие файлы.

Далее приходил я, лаборант, запускал Aidstest, чистил вирус. И это повторялось изо дня в день. Вирус просто невозможно было вычистить. Убив вирус, я убивал многодневный труд студентов, которые не могли после этого восстановить свои данные, испорченные вирусом.

Вот так Дмитрий Борисович создал неубиваемый вирус.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.