Enter - Карл Ольсберг
Глава 52
— Порядок. Думаю, можно попробовать, — сказал Бен и потянулся.
— Уверен? — спросила Маттэа.
Последний час она наблюдала за его работой и обращалась к нему, когда чего-то не понимала или замечала ошибку. Час до этого они работали наоборот: программировала Маттэа, а Бен наблюдал за ней. Такой подход к работе назывался «экстремальным программированием», он был самым эффективным способом за короткое время написать код с минимальным количеством ошибок. Работа с Маттэа действительно оказалась невероятно продуктивной и увлекательной, как движения в танце, — так их мысли гармонично дополняли друг друга. Однако Бен не был уверен, что они не упустили что-то важное.
Найти те фрагменты кода червя, которые инициировали обмен информацией с сервером, оказалось достаточно просто. Намного сложнее было понять, что происходило после установления связи. Первого контакта было недостаточно, чтобы начать диалог. Обычно интерфейс работает так: одна система посылает другой управляющий код и в ответ получает описание протокола обмена данными. У интернет-браузеров этот набор представляет собой HTML-документ, который может содержать, например, форму для ввода имени пользователя и пароля и кнопку Ok. В других интерфейсах используется XML. Но червь, как и ожидалось, осуществлял коммуникацию иначе. Поэтому Бену и его друзьям предстояло выяснить, каким образом кодировался ответ сервера и как червь реагировал на него, ничего при этом на самом деле не получив.
Они проработали всю ночь, позволив себе поспать лишь четыре часа. Однако Бен был в хорошем настроении и не чувствовал усталости. После полуночи им удалось обнаружить ту структуру внутри червя, которая отвечала за реакцию на ответ сервера. На это ушло много времени, потому что соответствующий код находился не в одном сегменте, а был распределен по разным частям программы, которые, в свою очередь, были запрятаны в различные процессы операционной системы или сохранены на неиспользуемых участках жесткого диска. Похоже, программисты очень сильно постарались усложнить самые простые операции. Бен предположил, что это было сделано с целью затруднить работу таких, как он, пытливых хакеров. Маттэа предложила более правдоподобное объяснение:
— Это как в голограмме.
— В голограмме? Что ты имеешь в виду?
— В голограмме информация, кодирующая изображение, распределена по всей площади. Если ты разрежешь обычную фотографию лица посередине, то получишь изображения двух половинок одного лица. Если ты разрежешь голограмму с этим же изображением, то получишь две голограммы с исходным изображением, которые, правда, станут менее четкими. Классическая база данных функционирует по принципу фотографии: каждая запись хранится в определенном месте. Если ты сотрешь половину с диска, то потеряешь соответствующие записи, но другая их часть останется. Я читала, что человеческая память, напротив, функционирует по принципу голограммы. Воспоминание не хранится в какой-то конкретной точке мозга, а распределено в некоем ареале. Если вырезать кусочек мозга, то хранившиеся там воспоминания полностью не пропадут, а лишь потускнеют.
— И что это значит? — спросил Бен, потирая глаза.
— Понятия не имею. Может быть, то, что этот код написан не человеком, а как-то сам… написался.
— Хочешь сказать, его написала самообучающаяся система?
— Вполне возможно.
— Мне кажется, ты преувеличиваешь. Самообучающаяся система, пишущая коды такой сложности…
— Как бы там ни было, давай работать, а не болтать.
И они продолжили.
После того как структура программы была полностью вскрыта, они устроили себе небольшой перерыв на сон в надежде утром написать программу, которая эмулировала бы протокол обмена данными между червем и сервером, пусть даже и традиционным линейным способом. С ее помощью они смогли бы заставить центральный сервер на другой стороне канала поверить в то, что червь по протоколу изъявляет желание общаться (если, конечно, они не допустят ошибки).
— Позову Йенса.
Старый друг Бена, талантливый программист, все это время играл роль критикана. Вместо того чтобы помогать дешифровать протокол передачи данных, он беспрестанно капал на мозги об ужасах, которые произойдут, если организация, стоящая за червем, до них доберется. Когда же он наконец понял, что Маттэа и Бен его игнорируют, то обиделся и с легким чувством ревности отправился в кровать. Но разве такая девушка, как Маттэа, могла связаться с таким жиртрестом, как Бен?!
За завтраком Йенс все-таки осведомился о ходе работы и даже поздравил их с успехами, что вполне можно было расценивать как его извинение за вчерашнее поведение. Однако вносить вклад в их работу было поздно. Он слишком мало знал о том, что удалось обнаружить тандему Бена и Маттэа. Объяснять ему — значило терять драгоценное время, которое не удалось бы сэкономить, даже примкни он к ним. И Йенс предоставил им свободу действий.
Когда Маттэа привела его в комнату, он снова был тем ворчуном и придирой, которым его знал Бен.
— Не хотите немного повременить с продолжением и выспаться? Завтра все окинете свежим взглядом. К чему спешить?
— С ума сошел? — спросила Маттэа. — Ты думаешь, ребята, разработавшие червя, сидят спокойно и ждут? Они охотятся за Беном, точно так же, как копы. Рано или поздно они его здесь накроют и…
В дверь позвонили.
— Черт! — вырвалось у Йенса. — Я так и думал!
— Я открою, — сказала Маттэа.
Она закрыла за собой дверь в комнату. Бен захлопнул ноутбук и встал рядом с дверью, чтобы услышать, что произойдет в прихожей.
— Кто там? — услышал он голос Маттэа.
— Меня зовут Йаап Клаузен. Я сослуживец Бена Варнхольта. Мне нужно срочно с ним поговорить.
Бен сжал кулаки. Что, черт возьми, этот сноб здесь забыл и как он вышел на Йенса? Он молился, чтобы Маттэа повела себя правильно.
— Чей сослуживец? — спросила она.
— Я могу поговорить с Йенсом Освальдом?
— Йенса нет. Он уехал на выходные к родителям.
— Это… на самом деле важно!
— Ты что, не слышал? Позвони ему, если это так важно. У тебя же, наверное, есть его номер. Пока.
Она закрыла дверь. Бен выдохнул.
— Черт! — прошипела Маттэа, после того как убедилась, что за дверью больше никого нет. — Кто это такой?
— Коллега из БУУП, из моей команды, — ответил Бен. — Наверное, решил собрать лавры за счет меня. Мы никогда особо не ладили.
— Мне показалось, он