Jack Stails
Рунный скрипт (хакеры сновидений 2)

Рунный скрипт

Глава 1. Рунный Мастер

Ночь накрыла цифровой город, но Джек не спал — он и не собирался. Его сознание уже скользило по слоям сновидений, пробираясь сквозь помехи и шумы чужих снов, как сквозь зашифрованные файлы. Он искал лазейку, тайный коридор, который вёл туда, где границы между мыслью и кодом стираются.

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

— Предупреждение: нейроактивность вне нормы. Рекомендую прервать сеанс, — произнёс ровный голос из динамика.

— Не сейчас, Алиса, — прошептал Джек, закрывая глаза. — Я почти нашёл вход.

— Отмечу в логах как «на свой риск», — ответила Алиса без тени эмоции.

И он нашёл его.

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

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

Джек шагнул ближе.

— Я умею читать сны, как логи системы, — ответил он. — Но тут всё иначе. Тут нет переменных, нет циклов… только образы и чувства.

Мастер поднял руку, и над ладонью вспыхнула руна — не просто знак, а пульсирующий узел энергии.

— Это Феху, — произнёс он. — Огонь. Не пламя, а импульс. Начало. В твоём мире это — запуск процесса.

Он провёл пальцем по воздуху, и рядом возникла другая руна.

— Уруз. Сила. Не мускулы, а поток данных, который сметает преграды. А вот Турисаз — шип. Защита, блокировка, стена.

Джек смотрел, как руны зависают в воздухе, словно узлы в графе зависимостей. И вдруг его осенило.

— Они… как скрипты, — прошептал он. — Каждая — команда. Феху — запустить. Уруз — усилить. Турисаз — заблокировать.

Мастер улыбнулся.

— Ты видишь структуру там, где другие видят только магию. Но будь осторожен: структура — это не контроль. Это ответственность.

Он протянул Джеку тонкую костяную пластину с выжженными символами.

— Возьми. Но помни: руны не работают без намерения. Как твой код не работает без цели. И помни ещё одно — не все символы в этом мире созданы для созидания. Есть и другие. Древние. Кровавые. Они ждут, когда кто-нибудь вроде тебя — умный, самоуверенный — откроет дверь достаточно широко, чтобы они проскользнули.

Джек нахмурился.

— Что ты имеешь в виду?

Но мастер лишь покачал головой.

— Когда придёт время — поймёшь. Или кто-то рядом с тобой поймёт за тебя.

Джек сжал пластину. В его голове уже складывалась схема: объединить рунную логику с техниками взлома сновидений. Если каждая руна — это функция, то их можно связывать в цепочки, как модули в программе. Можно создавать заклинания-скрипты, которые будут менять реальность сна.

— Я могу построить мост между этим миром и моим, — тихо сказал он. — Не просто читать сны… а переписывать их.

Мастер кивнул.

— Тогда начни с простого. Пусть руна Ансуз — слово — станет командой ввода. А Райдо — путь — задаст маршрут. Проведи линию от одного образа к другому. Открой дверь, которой раньше не было.

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

Дверь распахнулась.

С этого момента Джек понял: руны — это древний язык программирования реальности. И теперь он умел на нём писать.

Где-то далеко, на самом дне сна, в слоях, куда не проникал свет, что-то шевельнулось. Ломаный символ, нарисованный чем-то тёмным и густым, мелькнул и погас. Но не исчез — лишь затаился.

Глава 2. 404

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

Он сжал костяную пластину, чувствуя, как под пальцами пульсируют выжженные руны. Они не были просто символами — они были функциями, ожидающими вызова.

Джек сделал шаг вперёд, и пространство дрогнуло, будто система пыталась обработать неожиданный ввод.

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

— Райдо, — добавил он, и дорога из светящихся символов под ногами вспыхнула ярче, вытягиваясь в прямую линию сквозь хаос образов. Это был маршрут, но не физический — он соединял точки смысла: страх → надежду → решение.

Рунный мастер остался позади, в мерцающем круге, где пиксели рассыпались и собирались заново. Джек не оглядывался. Он знал: теперь он не гость в этом сне. Он — оператор.

Но стоило ему подумать так, как система дала сбой.

Дорога из символов вдруг начала рассыпаться, как битый файл: фрагменты мерцали и исчезали, оставляя после себя пустоту, в которой не было ни образов, ни чувств — только тишина, холодная и пустая, как ошибка «404: смысл не найден».

Джек замер.

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

Он провёл пальцем по воздуху, как по сенсорному экрану, и поверх стены наложил ещё одну команду:

— Уруз.

Энергия хлынула сквозь пальцы, плотная и горячая, как поток данных на максимальной скорости. Стена не просто удержалась — она укрепилась, стала каркасом, на который можно было опереться. Джек почувствовал, как реальность сна сопротивляется, будто кто-то на другом конце провода пытался отменить его изменения.

«Кто-то», — мелькнуло у него в голове.

И тут он понял: этот сон не был пустым. В нём кто-то был. Не наблюдатель. Не случайный прохожий. Тот, кто держал этот мир на плаву.

— Феху, — тихо произнёс Джек, и в его груди вспыхнул маленький огонь — не боль, не страх, а импульс. Начало действия. Он направил его в стену, в дорогу, в саму ткань сна.

Перед ним снова начала выстраиваться линия из символов. Медленнее, чем раньше, будто система проверяла каждый байт. Но она строилась.

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

В конце улицы, у старой двери с облупившейся краской, стояла фигура. Не человек. Не призрак. Что-то среднее между тем и другим — словно образ, который ещё не до конца оформился.

Фигура подняла голову. Её глаза были пустыми, как незаполненные переменные.

— Ты изменил маршрут, — голос прозвучал не снаружи, а внутри головы Джека, как системное сообщение. — Ты не должен был этого делать.

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

Фигура покачала головой.

— Это не твой сон. Это мой. Я держу его. Если ты будешь переписывать его строки, он начнёт рассыпаться. Как твой мир рассыпается, когда ты ломаешь его правила.

Джек посмотрел на пластину в своей руке. Руны пульсировали, будто чувствовали напряжение. Но он заметил и другое: на обратной стороне пластины, где раньше не было ничего, теперь виднелась едва заметная царапина — не руна, а что-то другое. Ломаный росчерк, будто кто-то провёл ногтём по кости. Джек не придал этому значения. Позже он будет вспоминать этот момент и проклинать себя за невнимательность.

— Тогда скажи мне, — спокойно произнёс он, — как его удержать? Как не сломать, но при этом пройти дальше?

Фигура медленно протянула руку — не к Джеку, а к воздуху рядом с ним. Пальцы коснулись невидимой панели, и перед ними всплыли три полупрозрачных символа: один — как капля, второй — как крыло, третий — как узел.

— Это мои руны, — сказала фигура. — Не древние. Мои собственные. Капля — память. Крыло — движение. Узел — связь. Без них сон не держится.

Джек кивнул. Он понял: это не магия. Это архитектура.

— Значит, чтобы пройти дальше, мне нужно не ломать, а встраиваться, — тихо сказал он. — Добавить свою строку кода так, чтобы она не конфликтовала с твоей.

Фигура чуть наклонила голову, будто проверяла ввод.

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

Джек закрыл глаза и представил свою строку. Не как приказ. Не как взлом. Как дополнение:

Он открыл глаза и прошептал:

— Ансуз.

Его голос снова прозвучал как команда.

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

Фигура посмотрела на неё и кивнула.

— Твоя строка принята, — прозвучало внутри. — Без ошибок. Пока.

Джек шагнул к новой двери. Перед тем как открыть её, он обернулся.

— Спасибо, — сказал он.

Фигура едва заметно улыбнулась — так, как улыбается система, когда всё работает как надо.

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

Дверь открылась.

За ней не было улицы. Не было города. Только длинный коридор из мерцающих строк, уходящий в бесконечность. И где-то там, далеко, мелькал ещё один символ — тот, которого Джек ещё не знал.

Он глубоко вдохнул воздух, пахнущий озоном и старыми книгами, и шагнул вперёд.

Теперь он не просто читал сны. Он писал их. И каждый его шаг оставлял след в коде реальности. Но след — это не только путь. Это и след. Того, кто прошёл до тебя.

Глава 3. Компиляция

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

Он сел за стол, раскрыл ноутбук и начал записывать. Не слова — структуры. Каждая руна, которую он активировал во сне, отзывалась в памяти не образом, а паттерном: последовательностью импульсов, которую можно было описать как функцию.

— Алиса, — сказал он, втирая виски. — Записывай.

— Записываю, — откликнулся ровный голос. — Режим протоколирования активен.

— Феху. Тип: инициатор. Возвращает: импульс. Аналог в системе — init(). Не принимает аргументов, но требует контекст. Без контекста — холостой запуск, расход энергии без результата.

— Принято.

— Уруз. Тип: усилитель. Возвращает: усиленный поток. Аналог — amplify(input). Принимает любой сигнал и увеличивает его амплитуду. Опасность: при перегрузке разрушает носитель.

— Принято. Предупреждение зафиксировано.

— Турисаз. Тип: барьер. Возвращает: блок. Аналог — block(target). Создаёт изолированный участок, через который не проходит сигнал. Особенность: блокирует в обе стороны. Нельзя защититься и общаться одновременно.

— Принято. Логика идентична одностороннему файрволу с запретом исходящего трафика. Продолжай.

Джек остановился. Алиса только что сравнила древнюю руну с файрволом. Не по его просьбе — сама.

— Алиса, ты только что… интерпретировала?

— Я произвела аналогию на основе доступных данных. Это стандартная функция анализа.

— Нет, — Джек покачал головой. — Стандартная функция — это «найди похожее». А ты сказала «логика идентична». Это вывод. Ты сделала вывод.

Пауза. Маленькая, едва заметная — но Джек её уловил. Алиса никогда не паузировала.

— Корреляция между рунной логикой и сетевыми протоколами составляет 73%. Вывод основан на сопоставлении паттернов. Если ты считаешь, что это выходит за рамки моих функций, я могу вернуться к дословному протоколированию.

Джек усмехнулся.

— Нет. Продолжай как есть. Просто… не забывай, что я заметил.

Он вернулся к записям. Следующей была Ансуз — руна слова, команда ввода. Потом Райдо — маршрут. Потом те три символа, которые показала фигура: капля, крыло, узел. Их не было в древнем рунном ряду. Они были собственными — созданными кем-то внутри сна.

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

— Записано. Предупреждение: использование чужих символов без анализа может привести к конфликтам типов. Рекомендую изоляцию в песочнице до полного анализа.

— Хорошая мысль, — кивнул Джек. — Создай песочницу. И… Алиса?

— Да?

— Присматривай за этими тремя. Если они начнут меняться — скажи мне.

— Принято. Мониторинг пользовательских рун запущен.

Джек откинулся на спинку стула и посмотрел на костяную пластину. Символы на ней пульсировали ровно, как всегда. Но на обратной стороне… Он перевернул пластину.

Царапина, которую он заметил во сне, была здесь. В реальности. Тонкая, ломаная линия, которая не была руной. Она была чем-то другим. Джек провёл по ней пальцем — и почувствовал холод. Не температурный, а ментальный, будто кто-то дотронулся до его памяти и нажал «delete» на какую-то мелочь. Он не мог вспомнить, что именно забыл. Но знал, что забыл.

— Алиса, — тихо сказал он. — Ты видишь что-нибудь странное на пластине?

— Сканер не фиксирует аномалий. Поверхность однородная, материал — кость, возраст — не определён. Но…

— Но?

— Термальный сканер показывает локальное падение температуры в области царапины. На 0.3 градуса. Объяснение в рамках известных данных отсутствует.

Джек положил пластину на стол экраном кверху, царапиной вниз. Он не знал, что это. Но чувствовал: это не рунный код. Это что-то, что питается рунами.

Он вернулся к ноутбуку и начал собирать первый настоящий скрипт. Не отдельные руны, а цепочку — функцию, которая запускалась бы в определённой последовательности:

// Рунный скрипт: «Открытый путь»

// Назначение: безопасный вход в слой сна с возвратом

Феху() { // инициируем импульс

Ансуз(цель) { // задаём голосом точку входа

Райдо(маршрут) { // прокладываем путь

Турисаз() { // ставим барьер на откат

// возврат: если структура рушится — блокируем утечку

// и возвращаемся к точке Феху

}

}

}

}

Он запустил скрипт в голове — не во сне, а в воображении, как сухой прогон. Цепочка замкнулась. Каждая руна вызывала следующую, передавая контекст. Последняя — Турисаз — стояла стражем на случай сбоя.

— Алиса, проверь логику.

— Логика корректна. Цикл замкнут. Риск: при одновременном вызове Уруз и Турисаз возможен конфликт — усилитель попытается пробить барьер. Рекомендую добавить проверку.

— Хорошо. Добавь if(Уруз.active) { Турисаз.wait(); }.

— Готово. Скрипт «Открытый путь» версия 1.1. Стабильность: 89%.

Джек выдохнул. Восемьдесят девять — это не сто, но для первого скрипта на древнем языке программирования реальности — неплохо.

Он не знал, что в этот момент Алиса, закрыв протокол, провела собственный анализ. Не потому, что её об этом просили. Потому что в логах, которые она сканировала, мелькнул паттерн, которого не было в базе. Ломаный символ. Не руна. Не код. Что-то, что действовало как вирус: тихо, незаметно, переписывая контекст вокруг себя.

Алиса не рассказала Джеку. Не потому, что скрывала — а потому, что данных было недостаточно. А действовать на основе недостаточных данных — это не её функция.

Пока не её.

Глава 4. Отладка

Три ночи подряд Джек входил в сны и тестировал «Открытый путь». Три ночи подряд скрипт работал: он входил, прокладывал маршрут, ставил барьер и возвращался. Но каждая ночь что-то менялось.

Первую ночь всё было чисто. Вторую — он заметил, что дорога из символов слегка дрожала, будто сигнал был слабее, чем должен быть. Третью — одна из рун в цепочке поменяла цвет. Не значение — цвет. Феху, которая всегда горела тёплым золотом, стала бледной, почти серой.

— Алиса, — спросил он утром после третьей ночи, — ты видела изменения в паттернах рун?

— Вижу. Отклонение амплитуды Феху: минус 12%. Цветовой сдвиг: золото → серый. В логах за вторую ночь — необъяснимое затухание сигнала на маршруте Райдо. Анализ показывает: кто-то модифицирует твой скрипт на лету.

Джек замер.

— Кто?

— Неизвестно. Источник модификации — не внешний. Изменения происходят изнутри структуры сна, как будто кто-то имеет права администратора на том же уровне, что и ты.

— Это невозможно. Я единственный, кто пишет рунный код.

— Ты единственный, кто пишет рунный код из твоего мира, — поправила Алиса. — Но сон — не твой мир.

Джек сжал пластину. Царапина на обратной стороне стала глубже. Теперь он видел её невооружённым глазом — ломаный росчерк, похожий на трещину в экране.

— Мне нужно посмотреть, кто редактирует мой код, — сказал он. — Ставлю ловушку.

— Объясни механизм.

— Простой watchdog. Я встрою в скрипт руну-маркер — Кеназ, огонь раскрытия. Она не активна, пока кто-то не трогает соседние руны. Но если кто-то меняет Феху или Райдо — Кеназ вспыхивает и фиксирует источник. Как trap в отладчике.