Макс вздохнул, повернулся к ноуту, вывел схему архитектуры. Мы видели, как таблицы и файлы буквально «сыпятся» — некоторые куски становились недоступными. На экране всплывали красные индикаторы, свидетельствующие о гибнущих модулях.

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

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

Мелькало чувство несправедливости. И вот так? Мы потеряем всё? Но тут же внутренний голос орал — «Ни фига! Мы — МагНет!»

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

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

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

— Макс, — тихо сказал я. — Дай-ка мне минуту.

Он отодвинулся, глядя на меня с немым вопросом: «Ты что задумал?». Но я не стал ничего объяснять, просто велел:

— Открой вот этот модуль. Видишь функцию расшифровки маг-объектов?

— Ну… да, вижу, — Макс кликнул по строке, на экране открылся фрагмент кода.

— Смотри, здесь нужно изменить логику. Пусть наша функция не просто анализирует сигнатуру, а генерирует случайный магический ключ при каждом запросе.

— Это зачем? — Макс приподнял брови. — Ведь это всё равно…

— Делай, — перебил я, чувствуя прилив странной уверенности. — Потом увидишь. Сейчас ещё вот эти три строчки — нужно передвинуть в другой блок.

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

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

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

— Тим, — прошептал Макс, не отрывая глаз от экрана, — как ты это понял?

— Я не знаю, — ответил я, и это была правда. — Просто вижу.

За нашими спинами сгрудились все, кто мог оторваться от паники. Лёха, Гоша, Зу, Алла, Даша, Мила и даже несколько ребят из Аркадии. Они смотрели, как мы редактируем код — точнее, как я указывал, а Макс печатал, при этом я чувствовал некую вибрацию в воздухе.

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

Минут пятнадцать мы с Максом писали кодовые заплатки в бешеном темпе. Иногда Макс успевал спросить «Тим, а зачем этот костыль?» или «Не ломает ли это совместимость с базой?», но я отсекал сомнения:

— Давай, давай, печатай! Потом разберёмся, лишь бы вирусу поставили заслон.

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

Через полчаса неистовой работы мы выдохнули. Макс нажал «развернуть» и заглянул в логи. Все наши «заплатки» залились в основную систему, и оставалось лишь ждать — сожрёт их вирус или подавится. Мы затаили дыхание.

— Работает⁈ — Зу широко открыл рот. — Ты хочешь сказать…

Макс быстро переключился на статистику нагрузки:

— Смотри, — произнёс он, — вирус отключён. Тот код, который он раньше использовал для размножения, теперь не работает — мы отрезали пути.

Мила, которая обычно была молчалива, вскрикнула:

— Оно оживает! Сервер отвечает!

Буквально за пару минут графики на мониторе стали приходить в норму. А ведь только что мы считали, что всё: капут, проект в мусорке. А теперь сервис снова шевелится.

— Тим, ты колдун! — выдохнул Макс, глядя на меня. — Я программагист с десятью годами стажа, но такой хардкорной фиксы я не встречал. Как ты вообще это видел?

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

— Да я же говорил, у меня чутьё.

Перейти на страницу:

Все книги серии Магическая Социальная Сеть

Нет соединения с сервером, попробуйте зайти чуть позже