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