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