Рейн Карвик – Сервер 0 (страница 8)
Я первым делом проверил хэш, потому что доверять файлу без контрольной суммы – всё равно что пить воду из незнакомого стакана в грязном баре. Хэш совпал с тем, что показывал архив, и это было логично, но не успокаивало: совпадение хэша подтверждает целостность, а не невинность. Я не открывал файл сразу. Я положил его в карантин, в отдельное пространство, где он не мог разговаривать ни с чем, кроме моих глаз. И всё же мне казалось, что он уже разговаривает – не как вредоносный код, а как смысл, который просто лежит рядом и ждёт, пока ты признаешь его существование.
Шум в квартире был ровным, почти ласковым, и это слово меня раздражало, потому что ласка у машин – всегда маска. Я поднялся, прошёлся по комнате, словно движение могло вытряхнуть из тела ту странную дрожь, которая появилась где-то под ребрами. В окне отражался город: стекло, серый свет, ленивые рекламные переливы. Всё выглядело как всегда, и именно эта нормальность была подозрительной. Когда ты сделал что-то рискованное, хочется, чтобы мир отозвался бурей, сиренами, стуком в дверь. Когда мир молчит, возникает ощущение, что ответ придёт позже и будет точнее.
Я вернулся к столу и открыл терминал в изолированной среде, той самой стерильной, где любой контакт с внешним миром был обрезан на уровне виртуальных стен. Я перенёс Origin.txt туда, как переносят спорный артефакт в лабораторию, и на секунду замер, глядя на имя файла. “Origin” – происхождение, начало, первичная точка. Я не любил такие слова, потому что они звучат слишком красиво, слишком судьбоносно для цифровой рутины. Но именно эта красота и была приманкой: в мире данных редко встречается смысл, который не продают.
Я снова подумал о том, что архив внутри Omnicore был выстроен как музей, и что кто-то сознательно оставил там “исторические” метки, будто играл в археолога. Значит, кому-то было важно, чтобы такие, как я, нашли эти артефакты. И эта мысль была хуже любого вируса: вирус просто ломает систему, а намерение ломает доверие к миру.
Я открыл файл не двойным кликом и не привычной командой просмотра, а через утилиту, которая сначала показывала “сырое” содержимое, без попытки интерпретировать кодировку. Я хотел увидеть текст как набор байтов, как чистую материю, потому что материя меньше пугает, чем смысл. На экране побежали символы, и сначала они действительно выглядели как набор мусора: непечатные знаки, странные последовательности, обрывки латиницы. Я уже почти выдохнул, готовый сказать себе: подделка, шифр, обман. Но затем взгляд зацепился за ритм.
Среди кажущегося хаоса повторялись структуры, как в псалме повторяются мотивы. Где-то проступали связки, похожие на операторы, но не соответствующие ни одному языку программирования, который я знал. Между ними возникала вязь – арабская, или похожая на арабскую, только с углами, как будто кто-то пытался превратить каллиграфию в схему. Я поймал себя на том, что читаю глазами не символы, а их отношения, как будто пытаюсь услышать музыку по нотам, не зная, как она должна звучать.
Курсор в терминале мигал внизу, но мне показалось, что его мигание стало другим. Я с раздражением отогнал эту мысль: в виртуальной машине курсор должен быть полностью предсказуемым. Но раздражение не помогло, потому что чувство не было мыслью. Оно было телесным: как когда стоишь рядом с работающим генератором и чувствуешь вибрацию в зубах.
Я прокрутил текст вниз, медленно, как будто боялся, что слишком резкое движение нарушит что-то важное. В одном месте на экране всплыл фрагмент латиницы, и я увидел слово, которое можно было прочитать: “witness”. Свидетель. Слово, которое я уже видел в метаданных архива, только там оно было полем, а здесь – частью ткани. Я моргнул, и на секунду мне показалось, что буквы стали чуть ярче, как будто они откликнулись на моё внимание. Это был маленький, нелепый эффект, и именно поэтому он был страшен: настоящие сбои всегда начинаются с мелочей.
Я попытался сделать то, что делают инженеры, когда не понимают язык: привести всё к структуре. Запустил анализ частот, проверил, какие байты повторяются, какие последовательности похожи на маркеры начала и конца. Скрипты отработали корректно, выдали цифры, графики, сухие отчёты. И всё выглядело так, будто передо мной обычный шифротекст с крайне странной кодировкой. Рациональная часть меня ухватилась за это, как за поручень: значит, это просто зашифровано. Значит, есть ключ. Значит, это задача.
Но в этой рациональности было что-то фальшивое, потому что цифры не объясняли ритма, который я ощущал, когда смотрел на текст. Они не объясняли, почему некоторые строки заставляют сердце биться чуть быстрее. Они не объясняли, почему шум в квартире, хотя я сидел в изолированной машине, стал плотнее, будто сам воздух хочет заглянуть в экран.
Я сделал паузу и вдруг заметил, что на секунду перестал слышать город. Обычно даже в моей квартире, даже при закрытых окнах, где-то далеко есть фон: транспорт, лифт, чужие шаги. Сейчас же фон как будто растворился, и остался только шум – тот самый сетевой, электрический, который не привязан к конкретному устройству. Тишина вокруг него была слишком чистой, почти лабораторной. Я поднял голову, посмотрел на дверь, на коридор, на тёмный угол у шкафа. Всё было на месте. И всё же ощущение было таким, будто комната слегка сместилась, как изображение, которое потеряло синхронизацию.
Я усмехнулся, пытаясь вернуть себе контроль через иронию. “Поздравляю, Данила, ты скачал файл XIX века, и теперь у тебя галлюцинации,” – сказал я себе мысленно, и в этой фразе было больше отчаяния, чем юмора. Я не боялся сойти с ума. Я боялся, что это не безумие, а закономерность.
Я снова посмотрел на текст и заметил ещё одну вещь: некоторые символы выглядели так, будто они “не на месте”, как пиксели в плохом видео, которые сдвигаются на полшага. Это могло быть эффектом шрифта, рендеринга, что угодно. Я сменил шрифт. Символы остались. Я вывел текст как чистые байты. Сдвиг исчез, но ощущение “неуместности” осталось, как если бы сама структура текста требовала воспринимать её не глазами, а чем-то другим.
Я попытался закрыть файл, но прежде чем нажал команду, понял, что задерживаю дыхание. Это было смешно. Это было почти религиозно. Я нажал, и экран очистился, вернувшись к пустому приглашению терминала. На секунду стало легче, как будто я закрыл окно в холодный воздух. Но легче было ровно секунду.
Потому что когда приглашение терминала появилось снова, я увидел в нём странность, которую не мог объяснить ни шрифтом, ни настройками: знак курсора стоял чуть левее, чем должен, как будто строка началась раньше, чем визуально видно. Это была микроскопическая ошибка, возможно, просто глюк виртуальной машины. Но она выглядела как смещение перспективы в комнате, как ломка угла на долю градуса. Я моргнул, и курсор вернулся на место. И в этот миг я понял, что только что пережил первую микрогаллюцинацию, не страшную, не киношную, а именно “неуместную”, как чужое слово в знакомой фразе.
Я откинулся на спинку стула и почувствовал, как по коже проходит лёгкая волна. Не холод и не жар, а что-то промежуточное, будто нервная система пытается подобрать правильную реакцию и не находит. Я хотел списать всё на усталость, на кофе, на ночь без сна, но внутренняя часть меня, та самая, которая всегда искала язык, вдруг стала слишком внимательной, слишком тихой. Одержимость, которая до этого была мыслью, стала ощущением.
Я открыл файл снова, потому что уже не мог не открыть. На этот раз я не пытался анализировать частоты и байты. Я просто смотрел, позволяя глазам привыкнуть, как привыкают к темноте. И в какой-то момент мне показалось, что текст не просто лежит на экране. Он как будто слегка выступает из него, не в физическом смысле, а в смысловом: как будто он не отображается, а смотрит обратно.
Я резко закрыл файл и отодвинул руки от клавиатуры, будто это горячая поверхность. В комнате снова проявились обычные звуки: далёкий лифт, где-то капнула вода, холодильник тихо вздохнул. Но шум остался. И теперь я уже не мог убедить себя, что это просто фон. Он звучал как подтверждение того, что я сделал то, чего не должен был делать даже по меркам моей профессии: я прикоснулся к слову, которое слишком старое для сети, и сеть на секунду прикоснулась в ответ.
Я сидел, не касаясь клавиатуры, и пытался понять, что именно во мне изменилось за эти несколько минут, потому что изменения всегда опаснее событий: событие можно зафиксировать, записать, превратить в отчёт, а изменение живёт в тебе, как новый орган, и заставляет по-другому чувствовать мир. Тот факт, что курсор “съехал” на долю пикселя, был нелепым основанием для тревоги, но тревога цеплялась не за пиксель, а за ощущение, что реальность может быть редактируемой, как текст. Если она редактируема, значит, она может и ошибаться. А если она может ошибаться, значит, никто не гарантирует мне, что я всё ещё нахожусь там, где думаю, что нахожусь.
Я поднялся и налил воды, потому что вода – это последнее простое вещество, которому можно доверять, пока оно течёт. Стакан звякнул о столешницу, звук был обычным, и от этого стало легче, но только на секунду: обычность тоже может быть маской. Я выпил несколько глотков, ощущая, как холод проходит по горлу, и поймал себя на странной мысли: я делаю это так, будто мне нужно доказать собственному телу, что оно всё ещё подчиняется физике, что оно не станет внезапно набором символов. Эта мысль была абсурдной, и всё же она пришла сама собой, как приходит навязчивое слово, когда слишком долго смотришь на экран.