Хакеров легко победить — достаточно 5 строчек кода. Энтузиаст провёл реверс-инжиниринг Titanfall и объясняет разработчикам, как спасти игру
Поклонники Titanfall много лет страдают от регулярных хакерских атак. Однако, разработчики не торопятся решать проблемы игры.
Мы уже писали о том, что поклонники Titanfall атаковали другую игру Respawn Entertainment — условно-бесплатную королевскую битву Apex Legends, чтобы опубликовать сообщение «Спасите Titanfall» и привлечь внимание к проблеме.
Энтузиаст решил разобраться, что стоит за атаками. Для этого он провёл реверс-инжиниринг игры и выяснил, как одолеть хакеров.
По неизвестной причине удалили проверку длины никнеймов игроков. Например, он может запросто превысить 330 символов. Это не скажется на сервере, но повлияет на «клиентов» (игроков). Длинный никнейм позволяет воздействовать на другие «клиенты». Так можно выбросить игрока в главное меню или выводить какое-нибудь сообщение.
Решить проблему легко — достаточно добавить проверку длины никнейма. Желательно, чтобы он совпадал с указанным в Origin.
В Titanfall используются выделенные сервера, но рассылаемые сообщения о событиях содержат IP-адреса игроков. В этом нет смысла, а вот хакерам они могут пригодиться.
В движок Source встроена защита от DoS-атак, но разработчики отключили её. Вероятно, это сделали для обеспечения высокой скорости работы клиента при синхронизации с сервером.
Автор предложил исправление. Это 5 строчек кода.
Решить проблему с засыпанием сервера консольными командами тоже просто. Достаточно установить ограничение на число обрабатываемых команд в секунду.
Необходимо обновить систему авторизации. Сейчас боты с лёгкостью могут занять все сервера. Однако, они не отсылают ключ Origin. Для занимания слота на сервере достаточно просто поддерживать соединение. Необходимо ограничить время на отправку ключа. Тогда проблема решится сама собой. Такой ключ смогут отправить игроки, но не боты.
Энтузиаст порекомендовал увеличить число серверов Titanfall, а также позволить использовать команду «LeaveMatchWithParty» только лидеру группы.
Время покажет, прислушаются ли к советам разработчики.