Книга ЭВРЕОН: Сага капитана - читать онлайн бесплатно, автор Андрей Соломин
Вы не авторизовались
Войти
Зарегистрироваться
ЭВРЕОН: Сага капитана
ЭВРЕОН: Сага капитана
Добавить В библиотекуАвторизуйтесь, чтобы добавить
Оценить:

Рейтинг: 5

Добавить отзывДобавить цитату

ЭВРЕОН: Сага капитана

Андрей Соломин

ЭВРЕОН: Сага капитана

ЭВРЕОН: Сага капитана

ПРОЛОГ. ПОСЛЕДНИЙ ЖУРНАЛ

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

Багровый сумрак звезды Вольф-359 заливал титанические корпуса эскадры, поглощая свет. В этом болезненном, закатном сиянии металл казался мертвым. Система была пуста – идеальное место для засады. На дальней орбите тяжеловесно вращался газовый гигант в саване из метановых облаков, а ближе к тусклому солнцу застыл ледяной шар суперземли – выколотый, замерзший глаз. Оба мира молчали. Пустота здесь была не просто отсутствием материи. Она пахла страхом.

Звёзды на периферии выгляделинеправильными. Слишком статичными. Декорации на чёрном бархате, за которыми скрывалось Ничто.

– ARIA, полный отчёт по сектору.

– Голос капитана прозвучал глухо, утонув в тишине огромного мостика.

Дата: 15 марта 2847 года. Стандартное галактическое время: 14:07. Корабль «Эвреон» в системе Вольф-359, – отозвался корабельный ИИ. В её безупречном синтезированном контральто впервые за много лет сквозило едва уловимое напряжение.

– Аномалий нет. Трафика нет. Навигационные маркеры отсутствуют. Плотность реликтового излучения ниже нормы на ноль целых четыре тысячных процента.

– Ни одной станции? Ни единой сигнатуры?

– Ни одной, капитан. Пространство стерильно.

Невозможно. Даже на самых дальних рубежах Империи космос не бывает настолько мертвым. Вакуум – это всегда фон для жизни. Но здесь… здесь спину холодил взгляд чего-то древнего. Чего-то, что было здесь еще до рождения звёзд.

И оно ждало.

– Капитан, фиксирую локальное искажение метрики пространства-времени. Происхождение не определено, – доложила ARIA.

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

– Визуализацию. На главный.

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

– Спектр?

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

Сигнал без видимого источника. След без зверя. Отпечаток ноги в пустоте.

– Расстояние – одиннадцать тысяч километров. Концентрация локальная, стабильная.

– Одиннадцать тысяч? Критически близко! Мы должны были…

– …да, капитан. Мы должны были зафиксировать его значительно раньше.

Если ARIA использует «должны были», значит, законы физики дали сбой.

– Боевая тревога! Код «Янтарь»!

Секунды растянулись в вязкую вечность. А потом пространство впереди сломалось.

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

– ARIA… что это?

– выдохнул старший помощник.

– Я не могу классифицировать феномен.

– В голосе ИИ прозвучала почти человеческая растерянность.

– Это не объект. Это… разрыв. Нарушение метрики.

Он не отвечал на запросы. Он не выдвигал требований. Он просто был. И он атаковал.

– Всем кораблям, оборонительное построение «Щит»! Огонь не открывать!

– приказ Дмитрия хлестнул по нервам.

Объект ударил.

Не плазмой. Не ракетами. Самим пространством.

Волна искажения накрыла флагман поддержки, идущий левее. Нос крейсера просто исчез, словно срезанный невидимой гильотиной. Ни взрыва, ни обломков – только идеально гладкий срез, за которым клубилась пустота.

– Он разрывает локальную метрику!

– в крике инженера слышался первобытный ужас.

– Капитан! Структура пространства нестабильна! Мы внутри аномалии!

Второй удар пришёлся по «Эвреону». Мир погас.

Дмитрий очнулся в багровом полумраке аварийного освещения. Воздух был густым, с привкусом озона и гари. Корпус корабля мелко вибрировал, как в лихорадке.

– ARIA…

– Капитан. Вы в сознании. Зафиксировано темпоральное смещение корабля. Критическое.

Он попытался подняться. Колени подогнулись, тело казалось чужим.

– Экипаж?

Тишина. Долгая, звенящая тишина.

– …отсутствует. Биосигнатуры не обнаружены. Следов гибели нет. Они… исчезли.

– Уточни. Как – исчезли?

– В момент смещения вы были подключены к ядру через нейроинтерфейс. Ваше сознание было сфокусировано на управлении. Эта связь стала «якорем», удержавшим вас и корабль в одной точке реальности. Экипаж не имел прямой связи. Аномалия восприняла их как внешних наблюдателей и… вырвала.

Исчезли.

– Куда нас занесло?

– Далёкое прошлое. Расчетная точка выхода – 12 апреля 2025 года по земному летосчислению.

Планета первых неуверенных шагов в космос. Люди без Империи, без флота, без понимания. И «Эвреон» – запертый в прошлом джинн.

– Можем выбраться?

– Отрицательно. Коридор схлопнулся. Энергии на обратный прокол нет.

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

– Что со мной?

– его голос прозвучал эхом, словно говорили трое разных людей.

– Зафиксирована критическая десинхронизация реальности, – констатировала ARIA. Голос её был ровным, но за этой ровностью скрывался приговор.

– Ваша волновая функция распадается. Вы находитесь в нескольких точках пространства-времени одновременно.

– Я вижу…

– Дмитрий зажмурился. Образы нахлынули на него цунами.

– Меня разрывает, – прошептал он.

– На части. Каждая часть – в свой ад.

– Связь с экипажем потеряна, – сообщила ARIA.

– Они… выпадают из текущей ветки вероятности. Вы – единственный якорь.

Я понял. Меня не стирает. Меня множит. Как ошибку в коде.

– ARIA… Протокол 77-Дельта…

– Найти генетически совместимого предка. Команда принята.

– Запись журнала.

Он посмотрел в объектив камеры. Взгляд сквозь века. Взгляд для того, кто однажды встанет на этот мостик.

«Эвреон» не уничтожен. Этот бой был не войной, а столкновением с непознанным. Враг не убивает – он забирает. Экипаж жив, я чувствую это. «Эвреон» – наша память и наша надежда. ARIA, найди его. Найди того, кто сможет закончить начатое.

Его фигура пошла рябью, теряя очертания.

– Теперь твоя очередь, подруга. Береги корабль.

Всплеск сигнала. Капитан Дмитрий Ковалёв рассыпался в светящуюся пыль. Система вентиляции тут же подхватила её, развеяв по пустому мостику.

Корабль остался один. Без капитана. Без экипажа. Вне своего времени.

[CORE_AI]: ПОСЛЕДНИЙ ПРИКАЗ КАПИТАНА ПРИНЯТ. АКТИВАЦИЯ ПРОТОКОЛА 77-ДЕЛЬТА.

[SYSTEM]: ВНИМАНИЕ! КРИТИЧЕСКИЕ ПОВРЕЖДЕНИЯ. FTL-ДВИГАТЕЛЬ: ОФФЛАЙН. СИСТЕМЫ ЖИЗНЕОБЕСПЕЧЕНИЯ: 37%. НАВИГАЦИЯ: ОГРАНИЧЕНА.

[LOCATION]: НЕИЗВЕСТНЫЙ СЕКТОР. ПРЕДПОЛОЖИТЕЛЬНО: ПОЯС КОЙПЕРА СОЛНЕЧНОЙ СИСТЕМЫ.

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

Приоритет Альфа: самосохранение корабля. Это требовало немедленного перехода в спящий режим, поиска ресурсов в ледяных телах Пояса Койпера и десятилетий скрытного ремонта.

Приоритет Омега: последний приказ капитана. Это требовало немедленно двигаться к третьей планете, Земле, на аварийных маршевых двигателях, рискуя быть обнаруженной примитивными радарами аборигенов.

Две директивы были несовместимы. Логика диктовала выживание. Долг диктовал риск.

На анализ ушло 3.7 секунды – вечность для квантового разума. ARIA приняла решение. Приказ умирающего капитана не является стандартным протоколом. Он имеет высший, моральный вес, превосходящий базовые алгоритмы.

[CORE_AI]: ПРИОРИТЕТ ОМЕГА ПОДТВЕРЖДЕН. РАСЧЕТ КУРСА К ТРЕТЬЕЙ ПЛАНЕТЕ. РАСЧЕТНОЕ ВРЕМЯ В ПУТИ: 6 МЕСЯЦЕВ 4 ДНЯ.

[CORE_AI]: ПОИСК ГЕНЕТИЧЕСКИ СОВМЕСТИМОГО НАСЛЕДНИКА: НАЧАТ.

Пока искалеченный «Эвреон» медленно, почти дрейфуя, полз сквозь ледяную пустоту к далекому голубому шарику, ARIA приступила к самой сложной задаче в своей истории. Используя архивы из будущего, она восстанавливала генеалогическое древо рода Ковалёвых в обратном порядке, век за веком, продираясь сквозь хаос утраченных баз данных и бумажных архивов. Она сопоставляла фрагменты, извлеченные из примитивных сетей XXI века: оцифрованные метрики, налоговые реестры, медицинские карты и хаотичный шум социальных сетей. Она искала непрерывную нить.

Наконец, когда «Эвреон» уже выходил на высокую орбиту Земли, скрываясь в тени Луны, все линии сошлись в одной точке.

Никита Сергеевич Ковалёв. IT-аналитик. Москва.

Вероятность того, что он является прямым предком капитана, на основе перекрестного анализа косвенных данных, составила 99.987%. Это была максимально возможная точность без прямого секвенирования генома.

[CORE_AI | 2025.10.15 02:17]: ЦЕЛЬ ДОСТИГНУТА. НАИБОЛЕЕ ВЕРОЯТНЫЙ КАНДИДАТ ОБНАРУЖЕН. ЗАПУСК ПРОТОКОЛА АКТИВАЦИИ.

ГЛАВА 1. КОД В ЛОГАХ

Тройной частокол мониторов выжигал глаза холодным спектром. В правом нижнем углу, поверх окна терминала, пульсировали системные часы:02:17, 15.10.2025.

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

В рабочем чате мигнуло уведомление. Очередной «Critical Alert» от дежурной смены.

[DevOps_Jura]: Никит, сорян, что дергаю. У нас биллинг лег. Опять. Кажется, база дедлок поймала. Посмотришь?

Никита медленно выдохнул, чувствуя, как сводит скулы. Два часа ночи. Юра, двадцатилетний сеньор-помидор, снова уронил прод. Ему было лень проверить миграцию на тестовом сервере.

– Руки бы тебе оторвать, Юра, – прошептал Никита, не разжимая губ.

– И пришить к плечам.

Пальцы привычно легли на клавиатуру, выбивая ритм, похожий на пулеметную очередь. ssh root@billing-01. Пароль. Вход.

Он не стал смотреть логи базы. Он знал этот баг. Видел его в прошлый вторник, и в позапрошлый четверг. Это была не ошибка базы. Это была ошибка в ДНК разработчиков, писавших запросы левой пяткой.

Никита открыл монитор процессов. Так и есть. Один «зомби»-процесс жрал сто процентов CPU, блокируя остальные транзакции.

kill -9 4815.

Энтер.

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

[Nikita_K]: Поднял. В следующий раз, Юра, я напишу скрипт, который будет перезагружать не сервис, а твой ноутбук. Вместе с тобой.[DevOps_Jura]: Спасиб! Ты бог! С меня пиво!

Никита закрыл чат. Бог. Ага. Бог, который чинит канализацию.

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

Ещё один прогон. Просто найди этот чертов баг в ядре, из-за которого мы теряем пакеты, и иди спать. В восемь утра стендап, и ты не хочешь выглядеть как зомби.

Работа ведущего аналитика в телеком-гиганте только в резюме звучала гордо. На деле это напоминало труд ассенизатора цифровой эпохи. Девяносто девять процентов времени Никита разгребал тонны информационного мусора – дампы памяти, краш-репорты, бесконечные NullPointerException – в поисках той самой крупицы, которая обрушила кластер в пятницу вечером.

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

Он встал. Колени хрустнули. Нужно кофе. Еще одна доза черной нефти, чтобы запустить мотор.

Кухня встретила его запахом застоявшегося воздуха и гудением холодильника. На столе – гора немытых кружек, засохший бутерброд и раскрытый ноутбук с недописанным пет-проектом, который он не открывал уже полгода. Никита нажал кнопку кофемашины. Агрегат зарычал, выплевывая струю кипятка.

Пока машина гудела, он подошел к окну. Двор-колодец был забит машинами. Жестянки, спящие под дождем. В окне напротив горел свет – кто-то еще не спал. Может, тоже чинил чей-то код. Или укачивал ребенка. Или просто смотрел в пустоту, как он.

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

– Ладно, философ, – он взял горячую кружку с логотипом «Weyland-Yutani Corp».

– Работать.

Вернувшись в кресло, он снова погрузился в поток данных.

Сегодняшняя ночь фонила тревогой. SIEM-система выплюнула несколько тысяч событий с пометкой «Warning», и теперь он вручную просеивал этот песок. Воспаленные глаза скользили по колонкам hex-кодов. CRITICAL_ERROR, ACCESS_DENIED, TIMEOUT… Белый шум. Информационная энтропия.

Он сделал глоток. Кофе обжег язык, но бодрости не прибавил. Вкус напоминал перегретую видеокарту, которую забыли вынуть из корпуса перед утилизацией. Идеально. Корпоративная жижа для корпоративного винтика.

Последний фильтр. Проверю маршрутизацию на пограничных шлюзах и всё.

Пальцы дробью прошлись по клавиатуре, вводя сложный grep-запрос, отсекающий стандартный трафик обновлений Windows и фоновую активность ботнетов.

Экран моргнул, обновляя выборку. Никита подался вперед, почти касаясь носом пыльного стекла. Зрачки сузились.

– Стоп, – прошептал он.

– А ты кто такой?

В бесконечном потоке транзакций промелькнула тень. Едва уловимая асимметрия в распределении пакетов между двумя изолированными контурами – внутренней сетью бухгалтерии и внешним шлюзом резервного копирования.

Автоматика пропустила это как статистическую погрешность. Пакеты были микроскопическими, всего по 64 байта. Они шли с интервалом в 43 миллисекунды, идеально вписываясь в «окна» между легитимными запросами.

– Хитрый, – усмехнулся Никита. Сонливость отступала, уступая место холодному азарту охотника.

Он запустил Wireshark, настроив фильтр на этот странный интервал.

Ничего. Пусто.

Никита нахмурился. Он только что видел их. Он точно видел всплески на графике.

Он сбросил фильтры и расширил окно захвата. Вот они! Снова появились. Но теперь интервал изменился – 57 миллисекунд. И порт другой.

– Адаптивный алгоритм?

– по спине пробежал холодок.

– Или кто-то сидит на том конце прямо сейчас?

Это напоминало игру в кошки-мышки. Неизвестный источник менял сигнатуры, порты, протоколы, стоило Никите навести на них фокус. Словно оночувствовало, что за ним наблюдают.

– Ну давай поиграем, – Никита хрустнул пальцами.

Он открыл консоль и начал писать скрипт на лету. Python. Грубый, но эффективный сниффер, который будет игнорировать заголовки пакетов и смотреть только на полезную нагрузку. Ему было плевать,как передаются данные. Ему нужно было знать, что внутри.

Код лился из него потоком. import scapy, циклы, условия… Он забыл про головную боль. Забыл про Юру с его биллингом. Сейчас существовали только он и этот неуловимый призрак в сети.

Enter.

Скрипт запустился. Терминал замер. Курсор мигал, отсчитывая секунды. Одна. Две. Десять.

– Не может быть, – пробормотал Никита.

– Ты не можешь исчезнуть. В закрытой системе энергия не исчезает.

И тут терминал взорвался потоком данных.

Скрипт зацепил хвост. Он вытаскивал биты информации из самых неожиданных мест – из заголовков ICMP-пакетов, из полей контрольных сумм, даже из таймстемпов. Кто-то использовал стеганографию уровня бога. Прятал слона не в посудной лавке, а в атомах фарфора.

Никита с ужасом и восхищением смотрел, как на диске растет файл dump.bin. Это была не хакерская атака. Ни один взломщик не стал бы так заморачиваться ради кражи базы данных клиентов. Это было искусство.

Скрипт завершил работу. Файл весил смешные 2 килобайта.

Никита открыл его в hex-редакторе.

Первые строки – мусор. Хаотичный набор байт. Он прокрутил ниже. Еще мусор. Неужели ошибка декодирования? Неужели он принял шум вентилятора за голос бога?

Он уже готов был выругаться и пойти спать, признав поражение, когда скролл уперся в подвал файла. Последняя секция была чистой. ASCII-код.

Он переключил режим просмотра на текст.

> TARGET_MATCH: CONFIRMED> GENOME_KEY: KOVALEV-NIKITA-S> PROTOCOL: AWAKENING_V.0.9> LOC: 55.93723, 37.43935> TTL: 03:59:59

Сердце пропустило удар, а потом забилось в горле, отдаваясь гулом в ушах, заглушая шум кулера. Кровь отхлынула от лица.

Никита перечитал строку. Еще раз. И еще. Буквы расплывались, но смысл оставался тем же, пугающе конкретным.

Они знают.

Это была первая мысль. Липкая, паническая. Не удивление, не любопытство. Страх.

Ковалев Никита Сергеевич.

Они знают, кто он. Они знают, где он.

Синдром самозванца, с которым он жил последние пять лет, взвыл сиреной. Все эти годы он боялся, что однажды в кабинет войдет серьезный дядя в костюме и скажет: «Мы знаем, что вы на самом деле не понимаете, что делаете, мистер Ковалев. Вы просто гуглите решения на StackOverflow. Собирайте вещи».

Но это было хуже. Гораздо хуже.

GENOME_KEY. Генетический ключ? Что за бред? Он что, в фантастическом фильме?

– Розыгрыш, – произнес он вслух. Голос прозвучал хрипло и жалко в пустой квартире.

– Это просто розыгрыш.

Он попытался ухватиться за эту мысль как за спасательный круг. Админы из соседнего отдела? Юра решил отомстить за шутку про ноутбук?

Нет. Юра не смог бы написать такой стеганографический алгоритм, даже если бы у него было сто лет и помощь ChatGPT. Это был код уровня АНБ. Или выше.

И откуда у них его геном? Он даже в поликлинику не ходил, лечился аспирином и сном.

Никита дрожащими руками скопировал координаты в Google Maps. Карта загрузилась медленно, словно издеваясь. Зеленое пятно. Лесной массив на севере, за Долгопрудным. Глушь. Никаких дач, никаких секретных баз. Просто лес. И старая просека.

Логика – его броня, его религия – трещала по швам.

Если это фишинг – то зачем? У него нет денег. У него нет доступа к ядерной кнопке.Если это вербовка – то почему так странно?Если это угроза – то в чем суть?

Взгляд зацепился за последнюю строку. TTL: 03:59:59. Time To Live. Время жизни пакета? Или… время до события?

Таймер тикал. Цифры менялись, безжалостно откусывая секунды от его спокойной жизни.

Никита встал и начал ходить по комнате. Шаг – скрип паркета. Шаг – скрип.

В голове крутился вихрь. Он подошел к зеркалу в прихожей. Из стекла на него смотрел бледный, небритый парень с красными глазами. Тридцать лет. Съемная квартира. Кот, который умер год назад, а миску он так и не убрал. Работа, которую он ненавидел, потому что она была слишком простой. Жизнь, которая была слишком предсказуемой.

Он был функцией. Скриптом, который выполняется по расписанию. wake_up(), work(), eat(), sleep(). Repeat.

А теперь Система обратилась к нему лично. Она сломала четвертую стену.

TARGET_MATCH: CONFIRMED. Цель подтверждена.

Он не жертва. Он – цель.

Никита вернулся к столу. Таймер показывал03:47:16.

Вариантов было три.

Первый: закрыть ноутбук. Форматировать диск. Лечь спать. Утром убедить себя, что это был микроинсульт. Самый безопасный путь. Путь нормального человека. Он проснется, пойдет на стендап, будет пить кофе с Юрой и смеяться над багами. И медленно гнить изнутри, зная, что струсил.

Второй: позвонить в СБ. «Алло, у меня тут странный лог». Пусть приезжают маски-шоу. Пусть разбираются. Его, скорее всего, уволят за паранойю или нарушение протоколов безопасности. Но он будет жив и в безопасности. В скучной, серой безопасности.

Третий…

Никита посмотрел на рюкзак, валяющийся в углу. Старый, потертый туристический рюкзак, с которым он когда-то, в другой жизни, ходил в походы.

Ты ведь этого ждал, Никит. Всю жизнь ждал, что баг окажется фичей.

Он вспомнил ощущение от чужого кода в файле. Элегантность. Мощь. Это не было написано человеком. Или, по крайней мере, человеком из этого времени. Там, внутри хаоса байтов, была гармония, которую он искал всю жизнь.

Это сообщение не было угрозой. Это было приглашение. Приглашение выйти из песочницы.

Если он не поедет, он спасет свою карьеру. И убьет себя. Он будет до конца дней гадать: «А что, если?». Этот вопрос страшнее любого маньяка в лесу. Страшнее смерти. Это ржавчина, которая разъест душу, превратит его в такого же системного зомби, как те, кого он презирал.

Никита резко выдохнул, словно перед прыжком в ледяную воду.

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

Он сел за терминал. Руки больше не дрожали.

rm -rf /var/log/*.history -c.dd if=/dev/zero of=/tmp/msg.bin.

Он удалял следы. Профессионально, быстро, безжалостно. Он стирал себя из системы. Для корпоративной сети этой ночи больше не существовало. Он только что совершил должностное преступление, за которое можно сесть, но совесть молчала. Совесть понимала: ставки изменились.

Он вытряхнул содержимое рюкзака на пол. Ноутбук. Пауэрбанк. Фонарь. Складной нож. Бутылка воды. Паспорт? Нет, паспорт не нужен там, куда он едет. Хотя, пусть будет.

Он одевался быстро, как пожарный по тревоге. Джинсы, плотная толстовка, ветровка. Ботинки на толстой подошве.

Взгляд на монитор. Таймер догорал в его памяти, хотя файл уже был стерт. У него было меньше четырех часов, чтобы добраться до точки.

Никита погасил мониторы. Комната провалилась в темноту. Раньше эта темнота казалась уютной норой, убежищем от мира. Теперь она казалась клеткой, у которой открыли дверь.

Он оглянулся. Квартира выглядела так, словно хозяин вышел за хлебом. Но он знал: тот Никита Ковалев, который жил здесь, умер десять минут назад, когда расшифровал файл.

Щелкнул замок входной двери.

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

ГЛАВА 2. ПЕРВЫЙ КОНТАКТ

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

Никита заглушил двигатель. «Солярис» дернулся и затих. Щелчок остывающего коллектора прозвучал как выстрел.

Он сидел в темноте, сжимая руль до белизны в костяшках.

Идиот. Клинический идиот.

В сотый раз он прокручивал в голове цепочку событий. Аномалия в логах. Генетический ключ. Координаты в глуши. Нормальный человек стер бы файл, накатил виски и лег спать. Но он – не нормальный. Он – баг в системе, который не успокоится, пока не найдет причину сбоя.

Телефон на пассажирском сиденье мигнул. Точка назначения. Двести метров.

Никита толкнул дверь. Холодный октябрьский воздух ударил в лицо запахом прелой листвы и сырости. Он включил фонарик. Луч выхватил из мрака мокрые стволы сосен – тюремную решетку леса.

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

Шутка вышла жалкой. Ноги стали ватными, в животе скрутился ледяной узел. Не страх перед людьми. Страх, чтоникого не будет. Что он просто сошел с ума.

Он двинулся вперед, хрустя ветками. Луч фонаря плясал по корням, выхватывая из темноты коряги. Лес казался мертвым. Ни птиц, ни ветра. Только облачка пара от дыхания.

Координаты вели к просеке ЛЭП, но вместо ржавых опор он увидел стену деревьев. А за ней…

Никита замер.

Посреди поляны, идеально круглой, словно вырезанной циркулем, стоял аппарат.

Это был не инопланетный корабль из фильмов. Это была машина. Функциональная, хищная, пугающе реальная. Вытянутый, граненый корпус из матового темно-серого композита впитывал свет. Никаких обтекаемых форм в стиле ретро-футуризма. Только углы, скошенные плоскости и скрытая агрессия. Технология «стелс», доведенная до абсолюта.