Все новости
Это интересно
Сейчас читают
Titanfall 2
Аватар Evernews Evernews

Фанат Titanfall провел реверс-инжиниринг игры и рассказал разработчикам, как ее исправить

8
1
Поделиться
Телеграфировать

Избавиться от хакерских атак проще, чем кажется.

Фанат Titanfall провел реверс-инжиниринг игры и рассказал разработчикам, как ее исправить

У первой части Titanfall уже давно отрицательные отзывы в Steam: так фанаты пытаются привлечь внимание разработчиков к техническим проблемам, от обычных багов до хакерских атак, мешающих играть в мультиплеер. Польский фанат и разработчик p0358 пошел дальше.

Он провел реверс-инжиниринг первой части Titanfall и рассказал, что конкретно нужно сделать разработчикам, чтобы улучшить защиту игры и избавиться от значительной части атак. По словам p0358, все гораздо проще, чем может казаться со стороны: масштабные переработки кода не нужны.

Инженер объяснил, как починить Titanfall. Фанаты доказали, что он и есть хакер

В Titanfall отключена проверка длины ника игрока, она может превышать 330 символов. Сервер это не беспокоит, но на клиенте все иначе: из-за особенностей устройства сетевого протокола с помощью длинных ников можно вызывать на клиенте разнообразные побочные эффекты.

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

Было бы неплохо не только вернуть проверку длины ника, но и сделать так, чтобы ник игрока всегда совпадал с ником, используемым в Origin.

Сообщения о событиях содержат IP-адреса игроков, причем эти сообщения рассылаются всем остальным участникам матча. Смысла в этом нет никакого: Titanfall использует выделенные сервера, а не пиринговую модель.

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

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

Надо переделать авторизацию на сервере. У Titanfall фиксированное количество серверов, при желании все место на них могут занять боты и игроки не увидят ни одного доступного сервера.

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

У сервера нет защиты от спама консольными командами. Такая защита уже присутствует в более современных версиях игр на базе Source, но в Titanfall используется очень старый билд.

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

И еще кое-что

  • Возможность использовать команду LeaveMatchWithParty, выбивающую всю группу из матча, должна быть только у лидера группы.
  • Надо изменить алгоритм проверки наличия DLC: нынешняя реализация позволяет хакерам блокировать доступ к серверам.
  • При ошибке подключения к серверу из-за отсутствия ключа Origin стоит временно блокировать IP-адрес.
  • Нужно запретить параллельное подключение к серверу игроков с одинаковыми IP-адресами: пусть подключаются по очереди.
  • Количество серверов стоит увеличить.

Фанат надеется, что разработчики Titanfall обратят внимание на его исследование и все-таки найдут время поправить игру. Некоторые из этих проблем, пишет p0358, есть и на серверах Titanfall 2.

Читать далее
Какую из этих игр вы будете проходить в первую очередь?
Civilization VII
325 голосов, 13.1%
Kingdom Come Deliverance II
1406 голосов, 56.9%
Assassins Creed Shadows
436 голосов, 17.6%
Monster Hunter Wilds
101 голос, 4.1%
Avowed
114 голосов, 4.6%
Like a Dragon: Pirate Yakuza in Hawaii
91 голос, 3.7%
Теги: Titanfall 2, Titanfall, Игры
Аватар Evernews
Evernews
8067 подписчиков