– Понял, перекрываем гражданское сообщение, ― отрапортовал оператор.
– Выведите меня на сорок второй, ― влетая в кабинку, скомандовала Риша.
Двери за ее спиной мгновенно схлопнулись, пол под ногами завибрировал. Дисплей, предназначенный для введения нужных координат, загорелся ярко-ярко.
Р-раз!
Сознание Риши распалось, рассыпалось на отдельные строчки и знаки кода, затем сжалось, превращаясь в плотно упакованный файл, и на несколько мгновений погасло, чтобы тут же вспыхнуть и развернуться обратно. Вибрация под ногами пропала, и девушка, все еще слегка дезориентированная поспешной пересылкой, вывалилась из транзитной будки на сорок второй. Свернув в переулок, она еще раз сверилась с картой. Теперь ее голубой маячок опережал розовый на половину координатной клетки.
Риша запустила отсчет, изготовившись к прыжку, и сосредоточилась на движении крохотной точки.
Ближе… еще немного…
В тот момент, когда розовая и голубая метки почти пересеклись, девушка подпрыгнула, внезапно появляясь перед вирусом, и, схватив ее за плечи, швырнула на крышу. Кейс отлетел в сторону, брякнул о бортик. В приземлении Риша выхватила пистолет и направила его на девчушку. Та застыла, испуганно распахнув глаза.
«Обнаружен вирус».
Что-то на большой скорости врезалось в плечо Риши, выбивая из равновесия. Если бы не заложенная программистами ловкость и помощь системы, девушка бы полетела прямиком в зазор между зданиями. Она взмахнула руками, цепляясь за карниз, и рывком подбросила себя обратно.
Вирусы множились: теперь рядом с девчонкой стоял, приняв боевую стойку, парень. Риша мгновенно его опознала ― в конце концов, они уже встречались.
– Здесь программа атакующего типа, ― быстро сообщила она оператору, делая осторожный шаг к выпавшему из руки пистолету.
– «Ронин»? Ох, ― по связи было слышно, как бешено стучат клавиши. ― Я вышлю подкрепление.
– Я сама справлюсь. ― Риша наклонилась, не спуская глаз с нового противника. ― Он тут один.
Юноша в полумаске тем временем положил руку на старомодный меч у пояса и едва заметно дернул головой: девчушка подхватила кейс, после чего, не оглядываясь, бросилась прочь. Риша подняла пистолет.
Вирусы, точно так же, как и полезные программы, могли дополнять друг друга, вступать в симбиоз. И если смешная внешне девчонка, скорее всего, была создана для воровства и бегства, то помешавший им «ронин» ― так его окрестили операторы в центре ― был предназначен для уничтожения программ вроде Риши.
Шорох стали, выскальзывающей из ножен, звучал на удивление отчетливо, учитывая окружавший их шум. Скорее всего, зная об эмоциональных особенностях охотничьих программ, противник пытался заранее ее напугать, направить производительные силы на имитацию психологических реакций. Риша выстрелила.
Система не давала ей шанса на промах, но вирус уже исчез, чтобы тут же возникнуть перед программой.
Клац!
Лезвие встретилось со стволом пистолета. Пользуясь заминкой, она с силой ударила противника под дых, отбрасывая от себя, и снова навела оружие. Даже если всего один деактиватор попадет в точку, где спрятан исходник вредоносной программы, все быстро закончится.
Вирус тоже прекрасно это понимал. Его силуэт смазался, мешая Рише целиться.
Меч выскользнул будто из ниоткуда, выбив из рук пистолет и глубоко войдя в цифровые ткани ее тела. Программы не чувствовали боль, как люди, но повреждение кода было сродни… энергетическому всплеску, слишком мощному, чтобы продолжать нормальное функционирование.
Риша судорожно пыталась вдохнуть, пока вирус все глубже и глубже вгонял оружие в код, изменяя, переписывая, строка за строкой подавляя ее протокол. Только бы не повредил исходник!
Девушка захрипела, перехватывая руки. Большинство вирусов не поддерживали дистанционные атаки, значит ― разорвать контакт…
Зеленая сетка системы отключилась вместе с графой оповещений. Чувствуя, как ее отчаянные внутренние команды распадаются, Риша подалась назад, надеясь соскользнуть с меча, но вирус предугадал это движение и толкнул ее на землю, приколов к поверхности крыши.
Очки-экран окончательно отключились, и девушка смогла во всех деталях рассмотреть светящиеся раскосые глаза противника. Сосредоточенные, холодные, равнодушные. В глубине его зрачков Риша видела, как ее собственное лицо покрылось пиксельной рябью. Мир то погружался в темноту, то выныривал, дразня слишком яркими красками, но с каждым разом она воспринимала все меньше деталей…
Внезапно до краешка помутневшего сознания донесся шум помех. Вирус, очевидно, тоже их услышал, потому как его сосредоточенное выражение сменилось озадаченным. Не отпуская рукояти меча, он склонил голову набок, точно прислушивался. Риша уже не могла видеть достаточно четко, но ей показалось, что он закатил глаза.
А затем одним движением выдернул из нее лезвие.
Не тратя время на раздумья, девушка попыталась откатиться в сторону, но поврежденный код неточно передавал команды: вместо кувырка Риша вдруг нелепо дрыгнула ногой, словно собиралась пнуть противника в живот. Вирус же молча поднялся и, развернувшись, почти мгновенно исчез из поля зрения.
Риша наконец-то смогла вздохнуть. И первым делом трясущейся рукой ткнула в наушник.
– Центр…
– Риша, ― голос оператора звучал напряженно, ― что с тобой? Мне выдают сообщения об ошибке, и связь прерывалась.
– Меня… ― Девушка дождалась, пока стабилизируется код голоса. ― Меня серьезно повредили. Но исходник в порядке, ― она с трудом села.
– Что? Нет, Риша, ничего там не в порядке, я вижу… Риша! Тебе нужны восстановление и перезагрузка, сейчас же возвращайся в центр!
– Я уже устраняю ошибки. ― Риша осторожно вздохнула, проверяя, как работают простейшие команды. ― Их сейчас нельзя отпускать.
– Мы и не отпустим! Я высылаю подкрепление, а ты возвращайся в центр, ― настойчиво повторил оператор.
– Я продолжу преследование. ― Девушка поднялась и подняла многострадальный пистолет. Код был почти полностью исправлен, и о повреждении напоминали лишь мелкие сбои.
– Риша!..
– Отключаюсь.
Она мазнула пальцем по сенсору и выждала еще несколько секунд, проверяя алгоритмы. К счастью, исходник действительно уцелел, и теперь программа исправляла саму себя, заново сшивая и скрепляя цифровые ткани. Сглотнув, девушка запустила карту; два розовых маячка уже отдалились от нее на приличное расстояние, один за другим пересекая сегменты. Скоро вирусы должны добраться до границы сектора, где начиналась транзитная зона. Нырнут в поток ― и ищи их по всему киберпространству, но сейчас Ришу волновало не только это.
Вирус. Он отпустил ее. Отступил, подчинившись ― сейчас девушка это понимала ― команде в наушнике. Риша не была до конца уверена в своей догадке и поэтому не сообщила о ней в центр, но возможно ли…
Возможно, у вирусов тоже был «оператор»?
– Запустить поиск нелицензионных каналов связи.
Если вирусы общались между собой, используя те же методы, что и остальное киберпространство, то отследить их куратора будет даже проще, чем кажется.
Девушка устремилась вслед за беглецами. Пространство вокруг смазалось, заволоченное неоновой дымкой, по которой то и дело пробегали искры пикселей. Вновь подключившись к системе, Риша выбирала наименее загруженные маршруты, избегая запруженных улиц и проспектов, заставленных экранами крыш и мостов. Для этого ей не раз приходилось петлять, но девушка шаг за шагом приближалась к своей цели.
– Обнаружено восемь тысяч четыреста тридцать два нелицензионных канала в данном сегменте, ― мягким голосом отчиталась ей на ухо система.
– Отсортировать по степени загруженности. Приоритет ― от одного до десяти пользователей.
Одним махом перелетев оживленную трассу, Риша еще раз сверилась с картой. Уже некоторое время маячки вирусов не двигались с места, и это скорее настораживало, чем ободряло.
– Обнаружено семьсот…
– Найти те, которые используются прямо сейчас, а среди них ― подключенные к портативным передатчикам.