412 000 произведений, 108 200 авторов.

Электронная библиотека книг » Милана Масалова » Пожиратель памяти (СИ) » Текст книги (страница 1)
Пожиратель памяти (СИ)
  • Текст добавлен: 6 октября 2016, 18:36

Текст книги "Пожиратель памяти (СИ)"


Автор книги: Милана Масалова



сообщить о нарушении

Текущая страница: 1 (всего у книги 2 страниц)

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

http://ficbook.net/readfic/3326283


Автор:

Союз Мандрыковских ларьков (http://ficbook.net/authors/769933)

Фэндом:

Ориджиналы

Рейтинг:

G

Жанры:

Фантастика, Детектив, Повседневность


Размер:

Мини, 16 страниц

Кол-во частей:

6

Статус:

закончен


Описание:

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


Посвящение:

Крису Касперски и его хакерским (в хорошем смысле этого слова) книгам


Публикация на других ресурсах:

Где угодно, но пришлите, пожалуйста, ссылку


Примечания автора:

Куайн – компьютерная программа, которая выдаёт на выходе точную копию своего исходного текста.


1998 год – Околонаучные изыскания

      – А что, написать программу, которая выводит на монитор саму себя, слабо? – спросил Юра Гомеров, закуривая очередную сигарету.


      – Зачем? – поинтересовался Игорь Точилин, поправляя на переносице очки.


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


      – Просто для общего развития, – объяснил Юра. – Или тебе это совсем неинтересно?


      – Да что тут сложного, – пожал плечами Игорь. – Я приблизительно представляю, как это можно сделать…


      – Ну, так вперёд! – усмехнулся Юра, выбросил окурок в урну и вышел из курилки.


      Игорь последовал за ним…


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


      Сидя в пустой комнате, он сначала несколько раз сыграл в стрип-покер, а затем вспомнил об утреннем разговоре с системотехником из НИИ и решил по-быстрому набросать программу, которая выводила бы свой текст на монитор, чтобы завтра утереть нос этому Юре.


      Он запустил консольное приложение Builder и приступил к написанию программы.


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


      Откомпилировал и запустив эту программу на выполнение, Игорь довольно усмехнулся, увидев искомую фразу на экране.


      «Теперь осталось поместить всю программу в параметры оператора вывода на монитор», – решил Игорь, скопировал весь текст программы и вставил его вместо текста «Программа, которая печатает саму себя».


      После этого он некоторое время любовался текстом своей программы, выведенным в консольном окне, а затем посмотрел на исходный код и понял, что программа опять вывела на монитор только содержимое оператора вывода.


      «Так-так-так, – обхватил руками голову Игорь. – Нужно сделать какой-то хитрый финт, и всё получится. А что, если попробовать записать программу в память, а затем считать её оттуда и вывести на монитор? И ещё, нужно не забыть стереть потом из памяти эту программу...»


      Он написал программу, выполняющую эти действия, и увидел на мониторе несколько строк шестнадцатиричного кода.


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


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


      …А потом он ещё что-то добавлял в свою программу, а потом ещё немного усовершенствовал её, и каждый раз ему казалось, что ещё чуть-чуть, и всё у него получится…


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


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


      «Монитор накрывается», – решил он и выключил компьютер.


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


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


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


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



2013 год – Старый «винчестер»

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


      – А какие там изменения последний раз вносили? – поинтересовалась пожилая дама-конструктор.


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


      На некоторое время в комнате повисла тишина.


      – Нет, у меня на входах никаких фильтров не добавлено, но питание, да, подаётся через другую обмотку, – просмотрев вариант схемы на своём компьютере, сказала конструктор.


      – А ещё там какие-то дифференциальные каскады добавлены, – проговорил молодой электронщик Толик Сушко, рассматривая свой вариант схемы.


      – Так мы давно уже эти каскады убрали, – объяснил процессорщик Саша Бобрышев. – Они же постоянно перегорали…


      Юрий Викторович недовольно вздохнул.


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


      С этими словами Гомеров вышел и лаборатории и направился на склад.


      – Здравствуй, Ефимовна, – обратился он к кладовщице. – У тебя жёсткие диски есть?


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


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


      – Вот этот «винт» на мою лабораторию запишите, – сказал он, достав из стоящей на столе жестяной коробки отвёртку и отвинчивая жёсткий диск от корпуса, а затем отсоединил от блока и старый SATA-кабель.


      Затем он расписался в получении диска с кабелем и вернулся в лабораторию, где на его столе уже лежало две сложенной копии нужной ему схемы, а рядом – и его драгоценный оригинал.


      – Толик, – обратился он к молодому специалисту. – Вот тебе диск, присоедини его к компьютеру, где есть старый SATA-разъём, отформатируй и сделай директории по каждому заказу. А потом пусть каждый туда все свои конечные файлы скинет…


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


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


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


      «Ну, посмотрим сначала, что на этом диске есть интересного», – решил он и включил питание.


      На экране монитора появилась заставка загрузки системы.


      – С ума сойти: Windows 98! – вслух усмехнулся Толик. – Саня, иди, глянешь на раритет.


      – Зато под ней драйверы хорошо было писать, – объяснил Саша, подходя к компьютеру и протирая заспанные глаза. – Давай, глянем, что там, может, чем-то разживёмся.


      Старый «Офис», ещё более старый Builder, куча текстовых файлов с заданиями на проектирование обработчиков запросов к какой-то базе данных, куча программ на Си…


      – Давай, лучше по личным каталогам пройдёмся, может, там что-то интересное найдём, – предложил Саша, которому быстро надоело рыться в чужих рабочих программах. – Вот, смотри, каталог «Моё», может, там есть что-то.


      В этом каталоге, действительно, оказалось много интересного. Тут была и обязательная для таких каталогов большая коллекция откровенно одетых девушек, и собрание таких популярных лет пятнадцать-двадцать назад фэнтези про Амбер и Земноморье, и куча песен любимца всех интеллектуалов тех лет Бориса Гребенщикова, и наивные старые компьютерные игрушки типа «Тетриса» и «Шариков»…


      – Но я люблю те времена бриллиантовых дней… – негромко запел Саша, возвращаясь к своему столу за флэшкой. – Толик, скинь мне эти игрушки, они места мало занимают и есть не просят…


      – А что за игрушки? – заинтересовалась Анна Львовна, отрываясь от изучения очередного рецепта торта и подходя к столу, за которым сидел Толик.


      – Старые «Тетрисы» и «Шарики», – ответил тот. – А ещё «Монополия», совсем ещё примитивная.


      – И на мой компьютер тогда все эти игрушки перепишите, – попросила конструкторша.


      …Через полчаса в лаборатории установилась полная идиллия. В комнате мягким голосом пел Гребенщиков, Анна Львовна с упоением гоняла по экрану шарики, Саша с интересом играл в «Монополию», а Толик, перебросив на свой компьютер все инсталляции программ со старого диска, чтобы вечером выложить их в Интернет, и запустив форматирование этого диска, весело резался в «Тетрис».


2013 год – Проблемы с памятью

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


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


      Толик глубоко вздохнул, понимая, что сейчас Илья Павлович опять начнёт ему доказывать, что многие знания приносят многие печали, а вся лаборатория станет тихо развлекаться, пока старый опытный силовик будет очередной раз объяснять молодому электронщику, что трансформатор Теслы, турбина Шаубергера, конвертор Колера и прочие чудеса альтернативной энергетики, которыми однажды опрометчиво восхитился Толик, на самом деле – хорошо распиаренные прожекты, причём, подкреплять свои выкладки Илья Павлович будет исключительно сведениями из школьного учебника физики, якобы для того, чтобы Толику было понятнее…


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


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


      …А через неделю Анна Львовна никак не могла открыть файл сборки шкафа управления.


      – Мне нужен новый компьютер, – заявила она. – Этот слишком слабый: у меня трёхмерка сборки не загружается.


      И она демонстративно развернула в сторону заведующего лабораторией монитор, на котором никак не мог загрузиться SolidWorks.


      – Анна Львовна, почистите, наконец, свой компьютер, – привычно начал читать ей нотации Гомеров. – А то у Вас там по десять копий каждого проекта в разных директориях. И, пожалуйста, не открывайте одновременно с трёхмеркой другие программы, так, конечно, никакой памяти на Вас не напасёшься.


      – Что значит: «Не открывайте другие программы»? – возмутилась конструкторша. – Мне что, справочниками и распечатками даташетов со всех сторон обложиться, чтобы грамотно комплект документации сделать? А калькулятор? Я без него такого насчитаю…


      – Насколько я помню, у Вас – самый новый и «навороченный» компьютер в лаборатории, – напомнил Анне Львовне завлаб. – Я понимаю, что у Вас очень сложные расчёты, очень объёмные чертежи, но четырёхядерного процессора с четырьмя гигабайтами ОЗУ для этого более, чем достаточно…


      – Тогда, пожалуйста, помогите мне загрузить вот этот файл, – сладким голосом проговорила Анна Львовна и поднялась с операторского кресла, приглашая Юрия Викторовича пересесть на своё рабочее место.


      Усевшись за стол, Гомеров первым делом перезагрузил её компьютер и зашёл в BIOS, чтобы ткнуть носом конструкторшу в довольно приличные показатели её ПЭВМ. Но, зайдя на вкладку, где был указан реальный объём ОЗУ, он с удивлением увидел, что эта величина составляет всего 1,4 гигабайта…


      – Мой компьютер опломбирован, – голосом оскорблённой добродетели проговорила Анна Львовна, когда завлаб перевёл на неё свой взгляд. – Если хотите – вскрывайте и смотрите, что там стоит.


      Юрий Викторович, зная, что срок гарантии этого компьютера давно истёк, смело сорвал пломбы и отсоединил боковую крышку блока. На материнской плате стояло две планки ОЗУ по два гигабайта каждая.


      – Накрылась Ваша память, Анна Львовна, – печально вздохнул он. – Придётся Вам в «Автокаде» работать, пока мы Вам новое ОЗУ не купим…


      – В «Автокаде»? – возмутилась конструкторша. – А, может, мне, вообще, за кульман перебраться? Мне же к концу недели комплект документации для макетного цеха нужно выдать…


      – Тогда у Игоря на компьютере всё доделаете, – успокоил её начальник. – Игорь, пустишь Анну Львовну на пару дней за свой комп?


      Не услышав бодрого положительного ответа, Гомеров обвёл взглядом лабораторию, и увидел, что программиста там нет.


      – Где Точилин? – спросил он у оставшихся сотрудников.


      – Покурить вышел, пока у него база данных запрос обработает, – объяснил процессорщик Саша, сидящий за общим компьютером для выхода в Интернет. – У него с начала этой недели она «подвисать» начала, Игорь говорит, что памяти маловато…


      – А почему я узнал об этом только сейчас? – поинтересовался Юрий Викторович. – Кстати, а ты почему здесь шаришься?


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


      – Я Толика пустил перекинуть свои файлы ко мне на комп, а то у него на «винте» места свободного совсем нет, – объяснил Саша, с самым внимательным видом рассматривая страницу какого-то журнала по электронике, который заранее открыл на общем компьютере, чтобы не «попалиться».


      – Ох уж этот Толик, – шутливо покачал головой завлаб. – То памяти ему не хватает, то «винт» ему маловат…


      Его речь была прервана громким возгласом Толика.


      – А это что ещё такое? – электронщик сидел за компьютером Саши и, приоткрыв рот от удивления, наблюдал, как снизу экрана монитора появилась тонкая мозаичная полоса, которая постепенно становилась всё шире и шире.


      – Видеокарта «накрылась», – обречённо вздохнул Гомеров, взглянув на монитор Саши. – Да что же это за день такой сегодня!


2014 год – Память новая, проблемы старые

      Через несколько дней Юрий Викторович забрал со склада купленные по его заявке новую видеокарту для компьютера Саши, по четыре четырёхгигабайтных планки ОЗУ на компьютеры Игоря и Анны Львовны и однотеррабайтный жёсткий диск на компьютер Толика.


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


      – Протестируй эти ОЗУ, – попросил Гомеров Сашу. – И если какие-то планки нормальные, то оставь их про запас.


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


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


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


      А через несколько дней Гомеров заметил, что документы Word на его компьютере стали открываться дольше, чем раньше, причем, ему казалось, что с каждым днём документы загружаются всё медленнее и медленнее.


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


      Завлаба такое положение дел вполне устраивало, но сейчас он по пять минут ждал, пока откроется очередной документ Word размером всего в пару страниц, и понял, что у его компьютера не хватает оперативной памяти.


      – Саша, а ну, дай мне пару планок памяти из тех, что у нас раньше на компах стояли, – попросил Гомеров процессорщика, зная, что на «материнке» его старого компьютера есть два свободных слота для установки ОЗУ.


      Услышав просьбу начальника, процессорщик обхватил голову руками.


      – Ой, Юра, я про эту память давно уже забыл, – проговорил он, роясь в ящиках своего стола. – Сейчас протестирую…


      Саша снял боковую стенку со своего системного блока и достал из шкафа запасную материнскую плату, используемую для тестирования комплектующих. Затем он установил эту «материнку» на стопке книг рядом со своим раскрытым блоком, вставил туда первые попавшиеся четыре планки ОЗУ и подключил плату к своему блоку питания, жёсткому диску и монитору. Затем запустил программу сканирования памяти для первой планки ОЗУ.


      – А хотите хохмочку? – обратился процессорщик через некоторое время к остальным сотрудникам лаборатории. – Все битые ячейки памяти расположены по старшим адресам аккурат друг возле друга… Никогда такого не видел!


      Толик с Игорем подошли к столу Саши и посмотрели на экран монитора.


      – Контроллер ОЗУ «заглючил», – сделал вывод Игорь. – На одни и те же адреса информацию записывать начал, вот память и «загнулась».


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


      – О-о-о, на этой планке тоже «убились» старшие адреса, – прокомментировал он увиденное на экране монитора состояние следующей планки ОЗУ, которую начал тестировать Саша.


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


      – Кто-нибудь что-то понимает? – обвёл он взглядом своих подчинённых, когда и в последней планке памяти оказались неисправными ячейки со старшими адресами. – Память осталась рабочей, только объём её сильно уменьшился за счёт неисправных ячеек, которые в аккурат оказались в конце адресного пространства…


      – Так, может, она такая изначально была, – высказал своё предположение Илья Павлович, который, хоть и был уже пенсионером, но живо интересовался всеми новинками электроники. – Помнишь, Юра, ты рассказывал про то, что все процессоры делают на 4,7 гигагерц рабочей частоты, а потом до скольких смогли разогнать каждый из них при настройке, на столько и заявляют. Может, они и с памятью такое проворачивают?


      – Нет, – отрицательно покачал головой Гомеров. – Они на разный объём памяти разное количество микросхем на планках ставят, это гораздо легче и технологичней… Ладно, всё, хватит мозговым штурмом заниматься…


      Юрий Викторович встал из-за стола и, выбрав две планки ОЗУ с наибольшим исправным объёмом памяти, поставил их на свою «материнку»…


      …А через несколько дней Анна Львовна не смогла записать на жёсткий диск доделанную сборку.


      – Не хватает места для записи, – горестно всплеснула она руками, обращаясь к завлабу. – Вот говорила же я Вам, купите и мне новый «винчестер»…


      – Анна Львовна, – вздохнул Гомеров. – Почистите, наконец, свой диск: bak-файлы удалите, в папках порядок наведите. Да, и ещё, удалите хотя бы те серии «Санта-Барбары», которые Вы уже посмотрели, тогда сразу же куча свободного места на диске появится.


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


      – Странно, – проговорила она через некоторое время. – У меня на диске, оказывается, куча «битых» секторов, и все они находятся в конце…


      Через минуту все сотрудники лаборатории столпилась у компьютера Анны Львовны и молча смотрели на монитор, где программа дефрагментации диска сектор за сектором адресного пространства признавала неисправными…


      Первым в себя пришёл Гомеров.


      – Так, все сейчас же перезагрузили свои компьютеры и посмотрели в BIOSе объём памяти, – приказал он, а затем молча слушал, у кого сколько памяти на жёстком диске и в ОЗУ определил процессор.


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


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


      – Похоже, кто-то из нас принёс в лабораторию вирус, – сделал невесёлый вывод завлаб после окончания тестирования.



2014 год – Вирус

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


    Ваша оценка произведения:

Популярные книги за неделю