Пожиратель памяти

2014 год - Вирус

Услышав сообщение о вирусе, Анна Львовна резвым шагом подошла к своему компьютеру и запустила антивирусное приложение. Так как после удаления 2000 серий «Санта-Барбары» её жёсткий диск стал намного свободнее, чем раньше, то уже через полчаса проверка «винчестера» на наличие вирусов завершилась.

- У меня на компьютере вирусов нет! – категорическим тоном заявила конструкторша. – Вот, смотрите, русским языком написано: «Проверка успешно завершена. Вредоносные программы не обнаружены».

И она жестом руки пригласила всех сомневающихся подойти к её компьютеру, чтобы убедиться в её правоте.

- Анна Львовна, - усталым голосом проговорил Гомеров, не прекращая что-то набивать на клавиатуре своего компьютера. – Если антивирус отчитался о том, что он не нашёл вредоносных программ, то это значит только то, что на Вашем компьютере нет вирусов, сигнатура которых хранится в Вашей антивирусной базе. Но при этом Ваш компьютер может кишеть вирусами, информации о которых нет в этой базе…

- И что теперь мне делать, - встревожилась Анна Львовна. – У меня же в компьютере все проекты за последние десять лет, справочников куча… Не распечатывать же мне их теперь…

И она грустно воздохнула, вспомнив ещё и про огромную коллекцию кулинарных книг и журналов, которую тоже, наверняка, попортил этот так некстати появившийся в лабораторных компьютерах вирус.

- Кстати, очень даже неплохая идея, - одобрил мысль Анны Львовны Гомеров. – Да, давайте, распечатайте всю документацию хотя бы по тем проектам, по которым у нас сейчас договора есть. Игорь, Саша, покажите Илье Павловичу ваши самые необходимые схемы и исходники, пусть он их пока на общем компьютере распечатает. А сами идите потом ко мне, и Толика с собой возьмите…

…Через пять минут процессорщик, программист и электронщик сидели вокруг стола завлаба, а Юрий Викторович под стрёкот двух принтеров излагал перед ними свой план по борьбе с вирусом.

- Скорее всего, вирусом заражена одна или несколько системных программ, которые позволяют совершать запись непосредственно в ОЗУ или на «винт». Вот список программ, которые по-любому запускаются. Я их из «Диспетчера задач» списал. Я беру первые пятнадцать, следующие пятнадцать берёт Игорь, а остальные – Саша. Каждую программу нужно дизассемблировать, запустить под отладчиком и пошагово проверить все обращения к ОЗУ. Понимаю, что это займёт не одну неделю, но по-другому нам остаётся только отформатировать все дисководы и «флешки», а потом купить новую память… Да и то, не факт, что через полгода у нас опять все компьютеры не полетят, как сегодня…

…Игорь Точилин уже вторую неделю сидел перед монитором, на котором был бесконечный ассемблерный код какой-то программы. Рядом с программистом все эти дни сидел Толик, которому Игорь пытался объяснить азы кодокопания, надеясь, что он сможет взять на себя проверку хотя бы одной программы.

Проверка первой системной программы постепенно подходила к концу. Игорь ни в одном из её фрагментов не заметил ни рекурсий, ни переходов в никуда, и даже оценил несколько особо изящно написанных участков кода. Вот и последняя страница кода, только несколько операторов на ней так сильно отличаются от общего стиля и идеологии, в которых выдержана вся программа… Такое впечатление, как будто этот участок кода кто-то насильно записал на место пустых операторов в программе…

- Нашёл! – Игорь хлопнул по поверхности стола ладонями и откинулся на спинку операторского кресла, прижимая ладони к уставшим глазам.

Через несколько секунд его стол обступили все сотрудники лаборатории. Даже Анна Львовна и Илья Павлович, последние дни до головокружения распечатывающие все более или менее нужные чертежи, схемы, листинги программ и текстовые документы, прервали своё такое важное занятие.

- Вот, - ткнул пальцем в экран монитора Игорь. – Совершенно «левый» код. Вы только посмотрите, как коряво он написан, как будто кто-то не смог с первого раза написать нужную программу, а затем пытался подправить её, всё больше и больше запутываясь. Вот, глядите: поиск последних свободных адресов в памяти, затем побайтовая запись в эти ячейки… Такое впечатление, что эта программа записывает в ОЗУ саму себя, а через некоторое время стирает…

- Да-а-а, - протянул подошедший Юрий Викторович. – Давно не встречал программ, которые не портят данные, а выводят из строя «железо»… Ну, чего стоите? – Обратился он к Саше и Толику. - Ищите во всех управляющих программах на всех компьютерах такие участки кода и вырезайте вручную, а ты, Игорь, пиши программу, которая проверяла бы каждый файл на наличие этого участка и удаляла бы этот код. Такой себе антивирус для уничтожения одного вируса…

…Через неделю жизнь сотрудников лаборатории специзмерений вернулась на круги своя. Анна Львовна целыми днями делала деталировки и сборки в трёхмерке, а в обед смотрела заново скачанную «Санта-Барбару» и рассматривала свои кулинарные книги. Саша Бобрышев программировал и отлаживал микропроцессорные схемы для скоростомеров, а в обеденный перерыв мирно спал, положив голову на стол. Илья Павлович, заметив, что Толик Сушко рассматривает красочные картинки в скачанной с Интернета книге «Рукотворные НЛО», объяснял молодому электронщику, почему, с точки зрения аэродинамики, такие конструкции не будут летать.

Юрий Викторович Гомеров собрал всю испорченную вирусом купленную зимой память, которая была ещё на гарантии, и спокойно обменял её в том компьютерном магазине, где и покупал, на новую исправную, просто заявив, что она перестала работать.

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

К тому же Игорь написал во все службы технической поддержки антивирусных программ, рассказал об обнаруженном им вирусе и даже приложил к своему сообщению написанную им антивирусную программу. А ещё он даже не догадывался о том, что вся лаборатория почти месяц «стояла на ушах» из-за его неудавшейся попытки написать куайн пятнадцать лет назад.