Читать книгу Игрушка жестокого наследника. Ты украл мой код и обвинил меня во взломе! (Юлия Беринг) онлайн бесплатно на Bookz
Игрушка жестокого наследника. Ты украл мой код и обвинил меня во взломе!
Игрушка жестокого наследника. Ты украл мой код и обвинил меня во взломе!
Оценить:

3

Полная версия:

Игрушка жестокого наследника. Ты украл мой код и обвинил меня во взломе!

Юлия Беринг

Игрушка жестокого наследника. Ты украл мой код и обвинил меня во взломе!

Глава 1

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

«CyberShield» был для меня чем-то большим, чем хакатон. Это билет. Мой единственный шанс вырваться из провинциальной дыры, где все знали меня только как «ту странную девочку с наушниками», которая умеет чинить роутеры за пять минут. Здесь же я была просто Волкова А., номер одиннадцать-семь-четыре. Никто не знал, что я слышу код. Не читаю его глазами, а именно слышу. Для меня алгоритмы были музыкой: чистые функции звучали как арпеджио, баги скрежетали, как гвозди по стеклу, а сложные системы шептали свои секреты, если прислушаться достаточно внимательно.

Таймер на экране краснел: 14:59.

Мой палец завис над кнопкой Enter. Страх парализовал руки. Если я ошибусь сейчас, если мой скрипт вызовет бан или ошибку компиляции, меня выкинут из отбора мгновенно. Вика Ларина, дочь декана, уже победно улыбалась где-то в первом ряду, сверкая белоснежными зубами и дорогим ноутбуком с наклейками известных брендов. Она ждала моего провала так же сильно, как я ждала успеха.

Я закрыла глаза на секунду. Вдох. Выдох. Представила структуру защиты конкурентов. Это не было сложным кодом. Это было небрежным. Кто-то забыл закрыть бэкдор в модуле авторизации, решив, что никто не догадается проверить хеш-сумму токена вручную. Гениальная простота.

13:20.

Я начала печатать. Пальцы сами находили нужные клавиши, двигаясь быстрее глаз. Мне не нужно было читать документацию, чтобы понять логику этого куска кода; я чувствовала её неправильность кожей, как предвестник грозы.

В этот момент рядом раздался резкий звук.

— Ой, прости!

Голос был сладким, как яд. Вика Ларина стояла у моего стола, прижимая руку к груди. На её лице играла маска искреннего раскаяния, но глаза холодно оценивали ущерб. Стакан воды, который она якобы случайно задела плечом, лежал на краю стола, и мутная струйка медленно текла прямо к порту USB моего ноутбука.

Сердце пропустило удар. Капля упала на пластик корпуса. Одна. Вторая.

— Ничего страшного, правда? — протянула она, наклоняясь ближе. Её духи душили меня, смесь дорогого шипра и презрения. — Просто вода. Твои навыки... они ведь настоящие, да? Или ты опять списываешь у кого-то из старших курсов?

Я не ответила. Поднимать голову означало показать страх. Показать слабость. Значит, дать ей победу еще до того, как финишная черта будет пересечена.

Молча схватив салфетку из диспенсера, я промокнула стол вокруг порта, не отрывая взгляда от экрана. Таймер показывал 11:45. Руки дрожали, но движения были точными. Вика фыркнула, развернулась и исчезла в толпе студентов, которые начали обступать её, ожидая зрелища.

Она думала, что выбила меня из колеи. Она не знала, что для меня это лишь добавило напряжения в ритм. Теперь я должна была быть идеальной. Без единой опечатки.

И тут экран погас.

Черный квадрат. Надпись белым шрифтом: «Access Denied. Session Terminated.»

Паника накрыла волной, горячей и липкой. Сервер перегружен? Блокировка по IP? Нет. Вика. Она могла нажать кнопку принудительного сброса сессии через админскую панель, пока я отвлекалась на воду. Или кто-то другой. Важно одно: меня нет в системе. И время уходит.

10:00.

Слышались первые вскрики разочарования вокруг. Кто-то плакал. Кто-то матерился.

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

08:30.

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

sudo ./ghost_login.sh --target cyber_shield_arena

Экран мигнул. Появилось окно загрузки. Прогресс-бар полз вперед. Медленно. Слишком медленно.

07:15.

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

06:00.

Прогресс-бар замер на 98%. Я вцепилась ногтями в столешницу, чувствуя, как кожа трещит.

05:50.

Вдруг бар прыгнул до 100%. Экран вспыхнул зеленым. «Welcome back, User #1174.»

Я не колебалась ни секунды. Отправила финальный пакет данных, который был готов еще до блокировки. Система приняла его.

05:45.

«Submission Received».

Я выдохнула. Голова закружилась от облегчения и адреналина. Я сделала это. Ответ принят. Я убеждала себя: автоматическая проверка увидит результат, а до способа восстановления никто не доберётся. Очень хотелось в это верить.

Но радость длилась недолго.

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

1. Ким М.

2. Волкова А.

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

«Это ошибка?»

«Откуда она взялась?»

«Провинциалка сразу за Кимом?»

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

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

Но путь к выходу преградила стена тел. Вика Ларина стояла в дверях, скрестив руки на груди. За ней — группа студентов из элитных групп, те, кто всегда ходил с Марком.

— Поздравляю, Волкова, — голос Вики звенел от довольства. — Или мне стоит сказать «поздравляем»? Как ты умудрилась подобраться к капитану команды? Магия? Или, может быть, кто-то подсказал ответы?

Я попыталась проскользнуть мимо, опустив взгляд, делая вид, что их не существует.

— Уходишь? — Вика шагнула навстречу, блокируя проход своим высоким каблуком. — Боишься, что тебя спросят? Что ты сделаешь, когда твои «секретные методы» всплывут?

— Дай пройти, — мой голос дрогнул, но слова были твердыми.

— Она говорит «дай пройти», ребята, — усмехнулась Вика, обращаясь к своей свите. — Будто мы здесь для развлечения. Мы здесь для порядка.

Из-за спины Вики вышел высокий силуэт. Черная куртка, темные очки, которые он снял, оказавшись на свету. Марк Ким.

Глава 2

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

— Волкова, — сказал он тихо. Но в зале стало настолько тихо, что его голос прозвучал как выстрел.

Все замолчали. Даже Вика отступила на шаг, чувствуя перемену атмосферы.

— Твой код, — Марк сделал паузу, подходя ближе. Он пах сигаретами и дорогим одеколоном. — Он слишком хорош для новичка. Слишком... специфический стиль обработки исключений. Где ты этому научилась? В книгах? Или в подпольных форумах, которые закрыли два года назад?

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

— В твоем личном блоге, который ты удалила месяц назад, есть пост о «серых методах аудита безопасности», — продолжил Марк, не повышая голоса. — Там же есть ссылка на скрипт ghost_login. Совпадение? Или ты просто очень талантливая лгунья?

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

— Я ничего не нарушала, — прошептала я, чувствуя, как ком в горле мешает дышать.

— Нарушение NDA участников конкурса — это статья, — сказал Марк, делая шаг вперед, сокращая дистанцию до интимной, опасной близости. — И отчисление. Неминуемое.

Он повернулся к толпе, слегка склонив голову.

— Разойдитесь. Нам нужно поговорить лично.

Первые секунды никто не двигался. Марк обвёл толпу взглядом, и студенты начали расходиться, бросая на меня последние любопытные взгляды. Вика осталась, наблюдая с удовлетворением хищницы, которая увидела раненого зверя.

Марк взял меня за локоть. Не больно, но уверенно. Повлек за собой в коридор, прочь от света зала, в тень служебных помещений. Мы шли молча. Его хватка была железной. Я пыталась вырваться, но он даже не посмотрел на меня, продолжая тянуть дальше, к двери с табличкой «Серверная. Вход запрещен».

Замок щелкнул. Дверь открылась внутрь.

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

Марк закрыл дверь. Щелчок электронного замка прозвучал как приговор.

Он отпустил мой локоть и подошел к ближайшему стулу, сев верхом на него, лицом к спинке. Положил телефон на колено, экраном вниз.

— Садись, Волкова.

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

— Ты не можешь просто... обвинять меня в том, чего не делала.

— Я не обвиняю. Я предлагаю сделку, — Марк поднял глаза. В синем свете они казались почти черными. — У меня есть логи доступа к закрытой базе данных конкурса. Логи, которые показывают, что твой аккаунт использовал несанкционированный скрипт для восстановления сессии во время блокировки. Доказательства того, что ты получила преимущество нечестным путем.

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

— Зачем тебе это? — спросила я, стараясь говорить ровно.

— Потому что мне нужен инструмент, — Марк взял телефон с колена и встал, приблизившись ко мне. Он был выше, шире в плечах. Его тень накрывала меня целиком. — Мне нужен кто-то, кто видит систему так, как вижу её я. Кто слышит ошибки там, где другие видят только интерфейс.

Он включил экран телефона. Скриншот логов мелькнул перед моими глазами. Дата, время, ID устройства. Всё подтверждало мои действия.

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

Я сжала кулаки, ногти впились в ладони. Боль была реальна, якорь в настоящем.

— Второй? — прохрипела я.

Марк усмехнулся. Не злобно. Почти мягко.

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

— Ты хочешь, чтобы я стала твоей рабыней?

— Я хочу, чтобы ты стала частью команды, — поправил он. — Команды, которая побеждает.

— Почему я должна соглашаться?

— Потому что у тебя нет выбора.

Тишина в серверной стала оглушающей. Гул кулеров сливался в монотонный вой. Я смотрела на его лицо, пытаясь найти в нем хоть искру сочувствия. Но там была только скука. Ему было скучно играть в доброго хозяина. Ему нужна была эффективность.

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

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

Если я откажусь, я потеряю всё.

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

Я подняла голову, встречая его взгляд. Внутри меня что-то сломалось, но осколки сложились в новую, острую форму. Форму стратега.

— Анонимно, — сказала я. Голос был твердым. — Я буду делать твою работу. Но ты никогда не назовешь меня ассистенткой. Ты никогда не скажешь, что я писала твой код. Для всех я буду существовать как призрак. И если ты хоть раз нарушишь это условие, я найду способ уничтожить тебя так же эффективно, как ты нашел способ поймать меня.

Марк моргнул. Усмешка на его лице стала шире, но теперь в ней появилась тень интереса. Хозяин увидел, что раб кусается. И ему это понравилось.

Он вернулся к телефону, набрал сообщение и отправил его кому-то в контакт «Декан».

— Принято, Волкова. Добро пожаловать в команду.

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

Глава 3

Аудитория №304 пахла пылью, старым пластиком и моим собственным страхом. Я стояла у доски, сжимая маркер так, что пальцы побелели. В голове гудело: ты можешь это сделать. Это был мой проект. Не Марка, не Вики, а мой. Архитектура распределенной базы данных для IoT-устройств. Чистый код, логика, которую я выстроила за три бессонные ночи, прячась от всех в библиотеке на третьем этаже.

Я включила проектор. Слайд вспыхнул синим светом.

— Система использует гибридный протокол обмена данными, — начала я. Голос звучал нормально. Без запинки. Но когда дошла до узла маршрутизации, язык отказался повиноваться. Термины «консенсус» и «шардинг» сплелись в кашу. Руки затряслись. Маркер соскользнул, оставив жирную чернильную кляксу прямо на схеме топологии сети.

Тишина стала осязаемой. Она давила на уши.

Из первого ряда поднялась рука. Вика Ларина. Идеальная прическа, дорогая кофточка, взгляд хищника, который уже почувствовал кровь.

— Алина, стоп. — Её голос был сладким, как прокисший мед. — У тебя здесь логическая нестыковка. Ты пишешь, что узлы общаются через REST API, но в документации к модулю auth указан gRPC. Какая архитектура верна? Или ты просто копировала куски из разных источников?

Вопрос звучал профессионально. Слишком профессионально для студентки второго курса. И слишком неправильно для меня. Я знала ответ. Мы использовали gRPC только для внутреннего взаимодействия сервисов, а внешние клиенты подключались через адаптер REST. Но этот нюанс был в файле конфигурации, который я забыла упомянуть вслух из-за паники.

— Нет, там... то есть, мы использовали... — Я запуталась. Воздуха не хватало. Перед глазами плыли буквы.

Преподаватель, профессор Громов, хмурился. Он ждал ясности. Он ненавидел сумбур больше, чем ошибки.

Я увидела ошибку Вики. Не в её словах, а в контексте. Она ссылалась на документацию версии 1.2, которая была удалена с сервера месяц назад после обновления безопасности. Кто-то подменил файлы в общем чате курса. Специально. Чтобы я выглядела дурой.

— Вика, — я сделала шаг вперед, игнорируя дрожь в коленях. — Документация обновлена. Версия 1.2 больше не актуальна. Протокол изменился на...

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

— Ребята, это базовый курс первого семестра. Если ты не знаешь разницы между SQL и NoSQL в контексте этого кейса, может, стоит пересдать вводный модуль? Зачем занимать место?

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

Громов жестом остановил смех.

— Волкова, объясните ключевой узел своими словами: без шпаргалок, без терминов. Просто расскажите, как данные попадают с устройства на сервер.

Я открыла рот. Моя феноменальная память на алгоритмы испарилась. Страх стер всё. Я видела схему, но не могла назвать ни одного компонента. Слова вылетели из головы, оставив лишь белый шум.

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

— Слабо, — раздался голос из угла. Низкий, бархатный, холодный.

Марк Ким. Он сидел в тени, скрестив руки на груди. Капитан команды CTF. Король этой академии. Он не защищал меня. Он добивал.

— Алина, вопрос прост. Как ты обеспечила целостность данных при обрыве связи? Ответь. Сейчас.

Я посмотрела на него. В его серых глазах не было жалости. Только циничное любопытство ученого, наблюдающего за опытным образцом. Мольба застряла в горле комком.

— Эм... буферизация... локальное хранение...

— Невнятный бред, — он покачал головой. — Очень слабо. Ты потеряла контроль над ситуацией еще до того, как вышла к доске.

Я хотела кричать. Хотела сказать ему, что это его вина, его сделка, его давление. Но вместо этого опустила голову.

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

— Профессор, можно я дополню? — его голос дрожал, но в нем была искренняя попытка спасти меня. — Там есть нюанс с ретраями...

— Соколов, мы слушаем Волкову, — резко оборвал его Громов. — Не перебивай выступающего. Сесть.

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

Звонок спас меня от дальнейшего позора.

— Сдайте распечатки, — бросил Громов, уже не глядя на меня.

Я схватила стопку бумаг со стола. Ноги ватные. Нужно было уйти. Быстрее. Из этого зала, где каждый взгляд был как пуля.

В коридоре толкали локтями. Шум, смех, хлопанье дверей. Мир продолжал жить, будто ничего не случилось. Для них это был обычный вторник. Для меня — конец света.

Я прижала листы к груди, почти выбегая из здания.

На моём пути возникла Вика. Она не спешила. Она шла медленно, наслаждаясь моментом. Плечо ударило мое. Стопка бумаг рассыпалась по полу. Белые листы легли вокруг моих ног, как опавшие листья.

— Ой, прости, — произнесла она. Голос звенел фальшивой заботой.

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

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

Её пальцы коснулись моего листа. На нём крупным планом был фрагмент кода. Тот, который она только что объявила сборной солянкой из чужих источников. Я машинально посмотрела на него. И замерла.

В метаданных файла, которые случайно отразились в углу страницы (при экспорте редактор добавил колонтитул с датой последнего изменения), была дата изменения. Сегодня. За десять минут до моего выступления. Код был изменён после сдачи. Подменён.

Это не случайная ошибка в презентации. Это спланированная атака.

Но доказывать это сейчас нельзя. Я слишком слаба. Они все знают, что я боюсь. И они используют это.

Вика забрала свои вещи и исчезла в толпе, оставив меня на коленях в коридоре; редкие прохожие обходили рассыпанные листы.

Я выпрямилась. Колени болели. Внутри горело другое чувство. Не стыд. Не страх. Ледяная ярость. Холодная, расчетливая, как мой код.

Вышла из главного корпуса. Дождь хлестал по лицу, стекал за ворот футболки: куртку я забыла взять. Холод пробирал до костей, но я не чувствовала его. Телефон в кармане вибрировал. Одно сообщение. От Марка.

«Жду тебя в серверной через час. И принеси кофе. Без сахара. Как твоя жизнь».

Я посмотрела на экран. Капли воды размывали буквы.

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

Но я вспомнила взгляд Дениса, презрение Вики, равнодушие преподавателя и цинизм Марка.

Они думают, что сломали меня. Что я снова спрячусь за наушниками и буду молча делать грязную работу, потому что мне некуда идти.

Я смахнула слезы рукавом промокшей футболки. Выдохнула облачко пара в холодный воздух.

Написала одно слово.

«Нет».

Отправила.

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

Глава 4

На следующее утро я всё-таки решила начать не с серверной, а с деканата.

Воздух в коридоре деканата был густым, как кисель из дешевого пластика и отчаяния. Я стояла перед дверью с табличкой «Ларин В.А.», прижимая к груди папку с распечатками логов. Мои пальцы онемели от холода кондиционера, но внутри меня горел пожар — стыдливый, липкий, не дающий дышать. Нужно было просто постучать. Объяснить. Убедить. Но ноги не слушались, превратившись в свинцовые болванки.

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

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

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

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

Я вышла из коридора деканата, не оборачиваясь. Папка с распечатками логов прижималась к груди, как улика, которую никто не захочет принимать к производству. Дорога до общежития заняла десять минут, но я не запомнила ни одного шага: в ушах всё ещё звучало механическое «Ваша запись аннулирована».

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

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

— Ты можешь это исправить, Алина, — тихо сказал он, кладя инструмент на кровать. — Логи Вики есть в общей сети. Если мы сейчас полезем...

— Нет! — резкость вырвалась сама собой, обжигая горло. Я схватила его за руку, чувствуя его пульс. Медленный, спокойный. Мой же бился где-то в висках. — Если я сейчас полезу в их игры, меня вышвырнут совсем. Любая активность будет расценена как нарушение режима после скандала. Ты понимаешь?

Денис смотрел на меня своими темными, честными глазами. В них не было страха, только какая-то бесконечная терпимость.

Он протянул мне маленькую флешку. Металлический корпус был теплым от его руки.

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

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

В холле я на секунду замерла: рука сама потянулась к карману, где лежала флешка Дениса, тёплая, как уголь. Панику надо было деть в работу. Я нажала кнопку лифта, перебирая в голове чек-лист проверки оборудования.

Лифт остановился на минус втором этаже с мягким, почти бесшумным щелчком. Двери разъехались, выпуская меня в полумрак технического этажа. Гул серверов ударил в уши, вибрируя в костях. Я шла быстро, стараясь не привлекать внимания, но фигура у лифта стала непроходимой стеной.

Марк Ким опирался плечом о металл, крутя в руках телефон. Его белая рубашка сияла в тусклом свете аварийного освещения, контрастируя с моими мятыми джинсами и растянутой футболкой.

bannerbanner