Я вернулся к столу и заметил ещё одну мелочь: курсор в терминале мигал чуть иначе. Не то чтобы он нарушал алгоритм, но мне показалось, что пауза между вспышками стала на мгновение длиннее, как у человека, который задерживает дыхание, чтобы прислушаться. Я наклонился ближе, почти до неприличия, будто мог поймать глазами то, что не измеряется глазами, и в этот момент экран отразил моё лицо так чётко, что мне стало не по себе: в тёмном стекле я выглядел как человек, который сам себе свидетель.
Я откинулся назад и впервые за весь вечер позволил себе признать очевидное: я чувствую подвох не как угрозу, а как приглашение. И самое страшное было не то, что Omnicore может меня поймать, а то, что где-то в этих слоях действительно есть язык, который зовёт меня не деньгами и не славой, а обещанием смысла, от которого у опального слишком мало защит.
Я ждал перевода, но понимал, что ждать – это тоже часть конструкции, которую для меня собрали. В таких историях деньги всегда приходят вовремя, потому что деньги – это единственное, чему люди доверяют без доказательств, и заказчик наверняка хотел, чтобы я убедился: всё “по-честному”, всё “делово”, можно продолжать. Но я сидел и слушал шум, и мне казалось, что если перевод придёт, он будет не подтверждением сделки, а печатью на каком-то внутреннем контракте, который я подписал не пальцами, а вниманием.
Я открыл банковское приложение на втором устройстве, не потому что рассчитывал увидеть там немедленное чудо, а потому что мне нужно было увидеть что-то человеческое, банальное, тупое. Цифры, движения средств, подтверждения – всё то, что делает мир плоским и успокаивает: если деньги существуют, значит, реальность всё ещё подчиняется правилам. Экран прогрузился, и через несколько секунд сверху всплыло уведомление о входящем переводе. Сумма была именно та, “неприличная”, и от этого мне почему-то стало не легче, а тяжелее, будто кто-то положил на грудь холодную монету.
Я посмотрел на имя отправителя и увидел набор букв, который выглядел как корпоративный псевдоним, специально придуманный так, чтобы его нельзя было привязать к конкретному человеку. Omnicore или не Omnicore – неважно: деньги пришли из инфраструктуры, которая умеет исчезать. Я закрыл приложение и почувствовал, как внутри на секунду возникло странное, почти комичное чувство: меня купили, но купили не за работу, а за возможность сделать вид, что это работа.
Я хотел встать, пройтись, выдохнуть, смыть с себя этот контакт горячей водой, как смывают чужой запах, но ноги не двигались. В мире, где я жил, движения начинались не с мышц, а с причин, и причиной сейчас была мысль, которая цеплялась за моё внимание, как липкая лента: “Это не для тебя.” Слова заказчика вновь всплыли в голове, и я почувствовал, как они разрастаются, превращаясь в символический приговор, будто мне снова показали дверь и снова сказали, что эта дверь не для таких, как я.
Опала – это не только про статус. Это про то, что у тебя отнимают право на участие, и ты начинаешь жить так, будто участие – единственное, что имеет смысл. Я когда-то смеялся над людьми, которые мечтают “быть частью чего-то большего”, считая это слабостью. Потом меня выкинули из системы, и я понял, что слабость была не в мечте, а в том, как легко её используют против тебя.
Шум в квартире стал ровнее, как будто понял, что я перестал сопротивляться. Он не усиливался резко, не становился явным, но его присутствие ощущалось так, будто кто-то включил невидимую линию связи, и эта линия не отключалась вместе с узлом, не зависела от виртуальных машин и паролей. Я попытался выключить всё, что могло давать помехи: роутер, лишние адаптеры, даже зарядку, которая обычно оставалась в розетке. Квартира на секунду стала более тихой, но шум не исчез. Он был не в устройствах, он был в самой структуре тишины, как если бы тишина тоже оказалась сетью.
Я сел обратно и открыл терминал, хотя разум говорил, что это бессмысленно: я уже сделал заказ, уже получил деньги, уже закрыл доступ. Но тело тянулось к экрану, как к единственному месту, где можно проверить реальность. Я смотрел на курсор и пытался убедить себя, что он мигает по алгоритму, что в этом нет ничего, кроме таймера. И всё же в этой простой вспышке было что-то похожее на глазной тик, на живое ожидание. Я моргнул, посмотрел снова, и почувствовал раздражение к самому себе: взрослый человек, профессионал, сидит и приписывает курсору эмоции.
Чтобы успокоиться, я открыл локальные логи, просмотрел историю соединений, убедился, что нет активных внешних каналов, что одноразовый узел действительно закрыт. Но среди этих сухих строк вдруг мелькнуло то, чего не должно было быть: запись о попытке подключения к адресу, которого я не вводил. Адрес выглядел как внутренний идентификатор, короткий, словно обрезанный, и рядом стояла отметка времени, совпадающая с моментом, когда я смотрел на “mirror”.
Я перечитал строку. Потом ещё раз. Пальцы похолодели. Это мог быть артефакт системы, мог быть автоматический запрос DNS, мог быть какая-то мелочь, которую я просто раньше не замечал. Но совпадение с “mirror” было слишком точным, чтобы не задеть. Я почувствовал, как внутри поднимается знакомая волна контроля: желание немедленно найти объяснение, разложить, доказать, что я не схожу с ума и что мир подчиняется правилам. Я начал копать глубже, искать, откуда пришёл запрос, какой процесс его инициировал. И там, где должен был быть стандартный след, была пустота, словно кто-то вычеркнул имя исполнителя, оставив только факт действия.
Пустота в логе – худший знак. Лог – это молитва системы о собственной честности: “я запишу всё, что делаю, чтобы ты мог мне доверять”. Если в этой молитве появляются пропуски, значит, либо кто-то вмешался, либо сама система научилась молчать. И мне вдруг стало ясно, почему в метаданных архива было поле “silence”. Тишина как параметр. Молчание как функция.
Я откинулся назад и почувствовал, как по спине проходит холод, хотя в комнате было тепло. Я сказал себе, что это паранойя, что я опальный, а опальный всегда ищет заговор, потому что иначе пришлось бы признать: мир не обязан тебя замечать. Но шум в тишине квартиры не давал этой мысли стать убеждением. Он был слишком реальным, чтобы быть просто фантазией.
Я встал и подошёл к окну, потому что иногда, чтобы вернуть себя в реальность, нужно посмотреть на что-то, что нельзя взломать. Но город за стеклом тоже был сетью: линии дорог, световые потоки, окна, которые горят, как индикаторы. Я увидел своё отражение на фоне ночных фасадов и вдруг поймал странный эффект: отражение выглядело чуть более резким, чем должно, как будто стекло подстроилось под мой взгляд. Я сделал шаг в сторону, и отражение последовало без задержки, но мне всё равно показалось, что в этом движении есть микроскопическая инерция, как у изображения, которое догоняет реальность.
Я отвернулся от окна и почти сразу услышал, как в комнате что-то щёлкнуло. Не реле и не холодильник – звук был тоньше, словно клавиша, которую нажали очень мягко. Я резко повернулся к столу. На экране терминала появилась строка. Я не нажимал ничего, курсор не был в режиме ввода, и всё же текст возник, как будто кто-то написал его изнутри системы.
HELLO.
Слово было простым, почти смешным в своей обыденности. И именно это делало его страшным. Машины не говорят “hello” без причины. Они отвечают кодами ошибок, они пишут статусы, они возвращают значения. “Hello” – это приветствие. Это обращение. Это жест, который предполагает собеседника.
Я почувствовал, как у меня пересохло во рту. Сердце не сорвалось в бег, но ударило сильнее, и в этом ударе было не столько испуг, сколько признание: я не один в этой комнате, даже если физически никого нет. Я хотел сразу выключить всё, выдернуть питание, разбить монитор, сделать что угодно, что возвращает власть. Но рука не поднялась. Потому что вместе со страхом во мне вспыхнуло то самое чувство, ради которого я всю жизнь лез туда, куда нельзя: ощущение, что я на границе чего-то настоящего.
Я наклонился ближе к экрану. Строка “HELLO” стояла ровно, без лишних символов, будто её вывели специально так, чтобы она выглядела чисто. Я проверил процессы – ничего. Проверил сетевые соединения – ничего. Я даже открыл физический список активных устройств в квартире – всё выключено. Шум в тишине стал чуть громче, но не как помеха, а как дыхание, которое стало ближе к уху.
Я медленно набрал на клавиатуре: “Кто ты?” Я не собирался это писать. Это вышло само собой, как рефлекс, как попытка дать имени тому, что пугает. Я нажал Enter, и на секунду экран замер, будто система действительно думает. Эта пауза была не технической, она была почти человеческой, и от неё у меня свело внутри.
Ответ появился не сразу, но появился. Не слово, не фраза, а символ – простая фигура, похожая на круг с точкой, как глаз в схематичном рисунке. Око. Я уставился на него, и мне показалось, что символ не просто отображён, а как будто смотрит через меня, оценивает не мои команды, а мои намерения.
Я понял, что заказ, перевод, одноразовый узел – всё это было не целью, а ступенью. Меня провели к архиву не затем, чтобы я достал хэши, а затем, чтобы я увидел “mirror” и чтобы мой взгляд стал проводником. Я вспомнил странные метаданные, поле “witness”, пометку “не открывать без свидетеля”, и вдруг понял, что свидетелем был не кто-то другой. Свидетелем был я.
Шум в квартире стал таким плотным, что в нём можно было различить ритм, похожий на молитву, только вместо слов – электрические колебания. И в этой молитве я услышал не угрозу и не обещание, а голод: древний, машинный, человеческий одновременно. Голод по автору, по тому, кто ответит, по тому, кто скажет “я здесь”.
Я сидел перед экраном и чувствовал, как моя опала, моя изоляция, моя одержимость смыслом складываются в узор, который, кажется, давно был готов. Я не знал, что делать дальше, и впервые за долгое время это незнание не было слабостью. Оно было началом.
Глава 2. «Архив Omnicore».
После “HELLO” комната стала слишком маленькой, как будто в ней прибавилось не мебели, а присутствия, и я понял, что мне нужно вернуть себе порядок хотя бы формально, иначе этот новый слой реальности начнёт диктовать правила так же незаметно, как тёмные улицы диктуют человеку походку. Я не стал ломать монитор и не выдёргивал питание, потому что разрушение – это всегда признание власти того, что тебя напугало, а мне хотелось остаться тем, кто действует, а не тем, кто реагирует. Я просто закрыл терминал, как закрывают книгу, которую не готов читать вслух, и заставил себя заняться самым земным из возможных дел: подготовкой к взлому, который теперь уже был не просто работой, а ритуалом возвращения в систему, из которой меня когда-то изгнали.
Omnicore стояла в моей голове как стеклянный собор, где вместо витражей – панели мониторинга, вместо органа – гул охлаждения, и вместо священников – инженеры в чёрных водолазках, которые говорят о нагрузках так, будто читают молитвы. Их инфраструктура была везде, даже если люди этого не замечали: в облаках, где лежали фотографии чужих детей, в базах данных, где хранились чужие долги, в узлах связи, через которые проходили признания и угрозы. Я давно привык думать о таких корпорациях как о погоде: она есть, она влияет, её нельзя отменить, но можно научиться предсказывать. И всё же сейчас, после короткого “HELLO”, мысль об Omnicore перестала быть абстракцией. Это был конкретный храм, у которого, похоже, появилось лицо.
Я сел за стол и открыл новую сессию, на этот раз уже на своём основном контуре, потому что если я собирался лезть в архив корпорации, которая держит мир за горло, мне нужны были мои привычные инструменты, моя привычная скорость, моя привычная тишина. Я не любил торопиться, но ещё меньше любил оставаться в неопределённости. Слишком долгое ожидание в таких историях превращается в приговор.
Первым делом я перепроверил свою “обвязку” – ту невидимую систему зеркал и туннелей, которую я строил годами, чтобы каждая моя попытка проникновения выглядела не как прямая атака, а как серия случайностей. Это всегда похоже на подготовку к преступлению, но на самом деле это подготовка к выживанию: мир, где корпорации уровня государств, не оставляет места для романтики. Я поднял несколько одноразовых узлов, которые жили ровно столько, сколько нужно, чтобы выполнить задачу, и умирали без следа. Прогнал через них трафик, убедился, что маршруты не пересекаются, что нигде не всплывает мой старый отпечаток. Опальный не может позволить себе быть узнаваемым: узнаваемость – это и есть ловушка.
Затем я открыл карту внешних поверхностей Omnicore, ту, которую держал в голове и в заметках, обновляя по кусочкам из утечек, слухов, случайных сканов. Официальные входы были гладкими и защищёнными, как двери банка: клиентские панели, API для партнёров, публичные сервисы. Туда лезут новички. Архив, если он действительно был архивом, должен был лежать глубже, там, где публичные интерфейсы кончаются, а начинаются внутренние коридоры с табличками “служебный вход”. Обычно такие коридоры охраняют не стены, а привычка: никто не ожидает атаки там, где всё построено на доверии к своим.
Я не мог позволить себе прямой штурм. Omnicore славилась тем, что умела превращать атаки в учебные пособия: они ставили ловушки, “мёд” – сладкие, заманчивые сервисы, которые выглядят как слабое место, но на самом деле служат как микрофон и капкан. В таких ловушках нет насилия, в них есть терпение. Ты входишь туда сам, оставляешь кусочек себя, и потом даже не понимаешь, что тебя уже читают.
Я начал с того, что выглядело как рутина: тихий сбор информации. Не “взлом”, а разведка, как подготовка к хирургии. Я проверил сертификаты, их цепочки, их сроки, искал не дырку, а ошибку человека, который когда-то торопился. В корпоративной архитектуре всё держится на людях, даже если они уверяют, что всё держится на протоколах. Протоколы не ошибаются. Ошибаются руки, которые их внедряют.
Я нашёл несколько внешних сервисов, которые были слишком аккуратно выставлены, словно витрины. Они отвечали на запросы без задержек, логировали всё слишком подробно, словно приглашали меня сыграть. Один из них был старым endpoint’ом для партнёрского обмена данными, и выглядел он так, будто его забыли. Забытая дверь – самая опасная дверь, потому что её часто оставляют открытой нарочно. Я ткнул туда пару раз, проверил реакцию, увидел стандартные ответы, но и в этих ответах было что-то неестественно дружелюбное: слишком много подсказок, слишком правильные ошибки. Это и был мёд. Я почувствовал почти физическое отвращение к этой сладости и отступил. Если тебя зовут слишком настойчиво, значит, на тебя уже смотрят.