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