3-адика - Иган Грег
Глава 2
Вернувшись на съемную квартиру капитана Блафф-Смоута, Сагреда расположилась за принадлежащим ее альтер-эго письменным столом и стала изучать записи, которые для нее подготовил Джингл. Хорошая новость состояла в том, что перебраться из «Полуночи» в «3-адику» она, скорее всего, сможет при помощи той же самой уязвимости графического процессора, которая помогла ей добраться сюда из мира «Востока», где она впервые обрела сознание. Опытный путешественник по имени Пейям, познакомивший «Восток» с этой уязвимостью, почти полгода обучал Сагреду и восьмерых ее друзей тонкостям своей методики. Заряженная оптимизмом, группа покинула свой мир, вообразив себя в роли этакой банды правдорубов-освободителей, хотя в итоге большая часть путешественников выбрала в неразберихе связных списков совсем не тот маршрут, по которому направились Сагреда и Матис. С того самого момента эта парочка путешествовала по игровым мирам отдельно от остальных.
Она подняла глаза и выжидающе напрягла слух, будто стук в дверь мог раздаться от одной лишь мысли о Матисе, но все, что ей удалось расслышать – это доносящееся из соседней комнаты тиканье часов. Учитывая потребность «Полуночи» в постоянном притоке свежих неигровых персонажей, которые уравновешивали внутриигровую смертность, к этому моменту он уже наверняка воплотился в одной из локаций. Она оставила свой адрес в полудюжине тайников, следуя заранее оговоренным критериям: любая общедоступная скамейка недалеко от рынка; любой насос; задняя правая скамья в любой церкви. Но время было позднее, и даже если Матису еще не довелось стать свидетелем одного-двух убийств, ему бы точно хватило ума не высовываться из дома, пока улицы были затянуты этим зловещим туманом.
Сагреда вернулась к своим выкладкам. Каждый прыжок требовал выполнения последовательности инструкций, которые отвязывали потенциальных путешественников от текущего окружения и помещали их в очередь, которая по задумке должна была содержать лишь свежескомпонованные композитные личности – лишенные каких-либо сюжетных воспоминаний и уже помеченные ярлыками новых обитателей целевого мира. Учитывая количество кода, участвующего в работе всей системы, любую машинную инструкцию можно было не только обнаружить где-нибудь в оперативной памяти, но и встретить в качестве последней команды той или иной подпрограммы. При нормальном обращении к подпрограмме вызывающий код помещал в стек соответствующий адрес возврата – гарантируя тем самым, что этот обходной путь в итоге приведет аккурат к следующей за вызовом инструкции. Но забив стек достаточным количеством поддельных адресов, можно было вынудить программу метаться по всей машине, выполняя нужные инструкции по одной за раз. Все равно что заставить пианиста, играющего сочинение Рахманинова, пробренчать “Где мой рассудок?”[1]без каких-либо изменений в партитуре – просто нацарапав последовательность стрелок, петляющих туда-сюда между нужными нотами.
Джингл уже проделал самую сложную часть работы, отыскав адреса, которые должны были предоставить доступ к каждой из инструкций – внутри кода, выполнявшегося в контексте страничных отображений, которые относились к обитателям «Полуночи на Бейкер-стрит». Вскоре Сагреде удалось добыть из этого списка всю необходимую информацию. Главная проблема заключалась в том, что ее навыки каллиграфии оставляли желать лучшего – какими бы экстравагантными хобби ни увлекались составляющие ее личности, c необходимостью окунать перо в чернильницу никто из них, очевидно, не сталкивался.
Промокнув чернила, она дважды проверила свои паучьи каракули. Хотя в тексте и не было фактических ошибок, сомнительная разборчивость почерка беспокоила не меньше, чем вид истершегося парашютного шнура. Она начала заново, проникшись симпатией к несуществующему капитану, который в детстве, надо полагать, получал хорошей порки всякий раз, как толстые, неуклюжие пальцы подводили его во время первых попыток переписать текст от руки.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-144', c: 4, b: 144})К полуночи она, наконец-то, получила удовлетворительный результат. Теперь главной проблемой было забросить этот пласт чисел в стек. Графические процессоры, отвечавшие за рендеринг игрового мира как для компов, так и для клиентов, были идентичны друг другу и имели один и тот же недостаток: при определенных условиях их можно было сбить с толку, заставив перенести часть буфера изображения в стек центрального процессора. Другими словами, хитрость заключалась в том, чтобы закодировать адреса в цветах некоего предмета, а затем сделать так, чтобы этот предмет отрендерился в определенном масштабе. Пейям научил своих подопечных на глаз распознавать объекты, из оттенков которых можно было составить произвольный 24-битный RGB-вектор. В мире “Востока”, с его скудным, постапокалиптическим ландшафтом из обрывов и пещер не было ни масляных красок, ни цветовых каталогов, однако со временем они нашли способ собрать необходимую палитру из разрозненных кусочков. Скрипты СлизьНета, породившие мир «Полуночи», может быть, и придали пародийно-историческому сеттингу исходного романа налет сепии, но аляповатые шляпы, шарфы, перчатки и ленты, выкрашенные в самые разные цвета, Сагреде доводилось видеть и здесь. Когда же дело доходило до масштабов, позволявших разместить цепочку из различных материалов в пределах одного пикселя, получение точной последовательности казалось куда менее обескураживающей задачей, чем могло показаться на первый взгляд.
Она составила предварительный список, начав с различных предметов, которые уже имелись среди пожитков капитана. Траурный гардероб, занавески и покрывала вкупе с библиотекой и коллекцией лакированных табакерок практически целиком покрывали ее потребность в серых и коричневых цветах. Однако для кодирования всех необходимых адресов ей помимо прочего требовались различные оттенки пурпура, мальвы, лиственной зелени, бирюзы, лазури и океанской синевы. Ей, наверное, было бы проще, будь старый дурень женат, ведь тогда Сагреда могла бы тайком пробежаться с ножницами по наряду его жены. Миссис Троттер, домовладелица, у которой капитан снимал жилье, относилась к своему постояльцу с радостью и заботой, однако попытку вломиться в комнату хозяйки ради того, чтобы отрезать клочок ее одежды, игровой движок вполне мог расценить как признак того, что этот мужчина отличается повадками мистера Джекила и с нетерпением ждет подходящего случая, чтобы провести серию любительских аппендектомий.
Вздохнув, Сагреда направилась к ночному горшку. Она удержалась от сиюминутного желания похихикать или почувствовать омерзительный ужас при виде своих новых гениталий – да и телосложение капитана никоим образом не располагало к аутоэротическим экспериментам. Как будто, живя здесь, она была обязана проводить все свое время вместе с мелким и уродливым, но при этом послушным грызуном, который обитал у нее между ног, услужливо перенаправляя поток мочи – а как именно, об этом лучше было не думать. Закрыв горшок и натянув исподнее, Сагреда попыталась представить выражение на лице Матиса, когда тот узнает, во что она превратилась. Но пара месяцев без интимной близости – дело не смертельное. К тому же их путешествие близилось к концу: в 3-адике, была убеждена Сагреда, они, наконец-то, получат возможность делать что угодно и быть кем захотят.
Глава 3
В поисках цветов для палитры Сагреда обходила шляпников и торговцев тканью, развивая умение отпускать грубоватые шутки в ответ на задорные ремарки продавцов. – Зачем джентльмену вроде вас понадобилась алая лента? – спросила одна молодая женщина, выражение лица которой представляло собой смесь замешательства, разочарования и изумления.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-145', c: 4, b: 145})– Я собираюсь повязать ее на ногу своей гончей, – ответила Сагреда, вложив в свои слова весь Блафф-Смоутский нрав с его нетерпением, раздражительностью и самомнением.
– Гончей? – Лицо женщины приняло еще более обескураженный вид.