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