Анклав (СИ) - Ермошин Андрей Федорович
Шрифт:
Интервал:
Закладка:
— Виктор, нужно авторизоваться.
— Видишь считыватель? Должен быть слева от тебя.
— Да.
— Поднеси туда коммуникатор. Терминалу нужно убедиться, что ты корпорант.
— Вижу, но нас ведь… тогда… — начал Марк.
— Засекут? Кто, жмурики, которых таскает Ребекка? Делай, что велено!
Марк повиновался. Надпись на экране сменилась перечнем доступных для выбора секторов; список состоял из десятков позиций, а видна была ведь только его верхняя часть. Вся электронная инфраструктура Корпорации — как на ладони.
— Вошёл. Подключать исполнительный модуль?
— Пока рано. Видишь разделы? Найди и выбери «Управление протоколами».
Быстро освоив принципы навигации по меню, Марк тотчас разыскал такой пункт, но доступ был заблокирован. Входу мешало окно системного сообщения.
— «Введите пароль», — прочитал он вслух.
— А вот теперь подключай модуль. Программа всё сделает сама.
Пока юноша доставал из куртки кубик со складными антеннами и всовывал его в консоль под экраном, Виктор продолжал говорить:
— Пароли меняются раз в двое суток и чересчур сложны, чтобы просто так их взломать. Но чтобы поддерживать подобную сложность и такую частоту обновления, при генерации паролей не обойтись без алгоритма, пусть даже очень мудрёного. Пришлось повозиться, но распутать его у нас получилось. Теперь мы знаем все возможные комбинации паролей, а уж подобрать из них актуальную — не проблема.
И действительно, стоило подключить модуль, в поле ввода пароля замелькали какие-то символы; прежде, чем Марк успел поинтересоваться, долго ли это займёт, поле пропало, и на всех экранах — как основном, так и вспомогательных — расположился незнакомый интерфейс.
Ясно было одно — он взаправду совершил это. На самом деле вошёл в систему управления протоколами.
— Ну что, Марк, момент истины. Суй коммуникатор в нишу и проверяй. Сейчас передадим красный протокол.
Марк уже и не помнил, когда в последний раз глядел на эту тонкую пластину у себя на запястье осмысленно, а не мельком, безо всякой цели. Наверное, несколько дней назад, слоняясь по квартире в ожидании весточки от Рики или хотя бы от кого-нибудь; надеясь, что отмашкой извне окончится, наконец, его тревожное заточение, и всё пойдёт как прежде.
И когда по руке пробежала полузабытая вибрация, он вздрогнул.
Экран коммуникатора зажёгся.
Разом возникнув, перед глазами рябили бессвязным набором букв и символов красные строки на чёрном фоне. Затем всё исчезло.
— Это всё? — проговорил Марк.
Виктор ответил утвердительно.
— Но я… ничего не чувствую.
— Ты и не должен. Нужно проверять.
— Проверять?.. — Марк переспрашивал по инерции. Ему вдруг стало ясно, что требуется сделать. Потянувшись к коммуникатору, он отстегнул ремешок, затем другой; устройство соскользнуло по коже и неслышно ударилось об пол.
— Быть того не может… — Рика склонилась над пластиной, словно не веря, что видит её на самом деле.
— Установка третья: корпорант обязан не снимать свой коммуникатор… — пробормотал Марк, ощупывая запястье. — Кажется, сработало.
Он подобрал пластину и надел на место — оставлять её нельзя было в любом случае.
— Ребекка, теперь твоя очередь, — из гарнитуры слышался беглый стук пальцев по клавиатуре.
Когда с протоколом Рики успешно покончили, Виктор вновь обратился к Марку:
— Теперь — самое важное.
— Я готов, — юноша придвинулся назад к терминалу.
Следуя инструкциям, он вывел на главный экран исходную страницу раздела «Хранилище данных»: то была карта, целое созвездие связанных между собой баз данных. Все они, обозначенные точками, даже не помещались в воспроизводимую область.
— Сколько же их! — выговорил Марк зачарованно. — Как найти нужную?
— Стой! Программа сама всё сделает, — напомнил Виктор. — Главное, не трогай модуль.
Изображение подёрнулось, зарябило и в конце концов сменилось белым экраном, по которому поползли — сначала медленно, потом всё быстрей — строки исполняемого кода. Покручивая на указательном пальце ремешок с коммуникатором, опять подошла Рика.
— Долго ещё? Нам бы сматываться пора. Не нравится мне здесь, слишком мы заметны.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-144', c: 4, b: 144})— Наберись терпения. Пока мы закончим, следи за коридором и будь начеку — осадил её Виктор. — Если что, можешь стрелять. Главное — выиграть время.
Строки сплошным полотном скользили по экрану снизу вверх. Марк иступлено наблюдал, как они появляются и, поднявшись, исчезают за пределами отображения.
Не потому, что нужно — нет, смысла в этом не было — он начал всматриваться в код, пытаться его разобрать; просто из необходимости чем-то заполнить гнетущее ожидание. Он вглядывался в экран, потому как не придумал ничего лучше. И через пару минут начал видеть структуру. Пусть едва уловимая, она отпечатывалась в его мозгу всё отчётливее: одни и те же символы, цветовые теги появлялись с выверенной частотой, в определённом порядке шли различной длины отступы.
Код был цикличен.
— Забавно, но я немного знаю этот язык, — сказал Марк, и, откинувшись на стуле, сцепил ладони за шеей. — Мы им пользовались в нейроотделе для файлового администрирования. Никогда бы не подумал, что он может применяться в подобных целях. Ну, в вирусе.
— Эффективнее средства не найти. Скрипт прочешет нужную базу данных, каким бы сложным ни было шифрование, и исполнит программу вируса во всех секторах.
— Погоди-ка, вот те фиолетовые метки — это же подразделы секторов, отдельные папки. Скрипт и их тоже сканирует? Мне кажется, не оптимально зарываться так глубоко. Можно было бы сэкономить немного времени, если… — Марк осёкся: в быстро меняющихся строках его привлекла одна деталь, и он резко придвинулся к монитору, навис над клавиатурой.
— Не пытайся вникнуть в то, как это работает, — со вздохом произнёс Виктор. Может ты и прав, но сейчас не лучший момент для дискуссий на тему оптимизации, не так ли?
Но Марк не слушал. Всё его внимание поглотила внезапная, явившаяся словно из ниоткуда догадка.
Он подумал о том, что корпорант, вероятно, не смог бы запустить незнакомый скрипт на неизвестном для себя устройстве. Не смог бы, поскольку — как знать — это накладывало явный риск невольного несоблюдения Установок.
А потом вспомнил, что аккурат пять минут назад он перестал быть корпорантом — по крайней мере, сам для себя.
Вцепившись в контроллер, он выделил курсором фрагмент мелькающего кода и перебросил скриншот на один из дополнительных мониторов. Увиденное нагромождение команд не шокировало и не ужаснуло.
Марк уже знал ответ. Знал, что скрыто в этом полотне текста, и искал лишь доказательств. Знал с того самого момента, как увидел злополучные фиолетовые метки. А теперь, казалось, знал ещё до того, как очутился в этом зале. Если и не он, то Рика — наверняка.
Решение возникло само собой. Быстрым движением Марк схватил исполнительный модуль, вырвал из консоли и отшвырнул прочь. Строки тотчас пропали с экрана, сменившись чернотой.
— Какого чёрта, ты что творишь?! — вскричала Рика, заглушая голос из гарнитуры.
— Нас обманули! — юноша выпрыгнул из кресла, развернулся и мощным пинком опрокинул его. — Они не просто шифруют данные, делая недоступными. Перед этим они копируют их и отправляют себе!
Глава 12
— Марк, в чём дело?! Верни модуль на место, слышишь! — Виктор орал так, что динамик гарнитуры едва справлялся с передачей голоса.
— Довериться тебе второй раз было громадной ошибкой… — процедила Рика.
— Двигаем отсюда, скорее! — крикнул ей Марк, и, подцепив сумку, бросился к выходу.
Рика бежала следом — с ожесточением выдернула, отшвырнула гарнитуру, схватила обеими руками автомат.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-145', c: 4, b: 145})Две тени выскользнули из озарённого лампами помещения и растворились в темноте коридора.
— Как много успел передать? — спросила Рика, нагоняя юношу.
— Думаю, пятую часть, может, четверть. Столько же перешифровалось на сервере.