Top.Mail.Ru
Ответы

Напишите алгоритм анти-чита для игры. Как он должен работать?

По дате
По Рейтингу
Аватар пользователя
Новичок
5лет

Огромное количество нечестных игроков с нечестными методами игры разгуливает по сей день на просторах онлайн игр. Ежедневным укрощением их популяции занимаются анти-читы.

Зачастую методы обнаружения читов куда сложнее и хитрее, чем сам алгоритм читов, однако и те, и те, вечно совершенствуются и иногда без человеческого фактора не обойтись.

В одной из прошлых статей я описал алгоритмы работы нескольких популярных читов, сейчас же опишу какие бывают античиты, как они работают и причем тут взлом одиночных игр.

Серверный античит
Античиты условно можно разделить на 3 типа : серверный, клиентский, гибридный.
Начнем с первого.

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

Например speedhack:

Берем промежуток времени и находим разницу в векторах позиции, если он выше любых норм - бан. Можно напрямую спросить у клиента, каково значение переменной, отвечающей за скорость и выдать бан. Но и читы не дремлют - давно обучились вызывать искусственные лаги, которые незримы для подлеца-читера и естественны для сервера, в которых он не видит ничего странного.

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

Клиентский античит
Запускается вместе с игрой и работает на фоне, запрещая как либо взаимодействовать на процесс с игрой.

Для более полного понимания давайте вспомним как можно было получить преимущество в одиночной игре с помощью ArtMoney.

Простейшее редактирование этих значений бедного, незащищенного процесса игры, как раз и позволяет получить преимущество. Как вы уже догадались, вектор направления взгляда, скорость и прочие приблуды игры хранятся как раз там и чит их меняет.

Защита процессов существует и на уровне ОС, однако не идеальная :
античиты её дополняют, запрещают доступ, скрывают процесс от вторжений или просто посылают серверу сигнал, что мол тут один человечек пытается нарушить естественный ход бытия, а значит - бан.

Значит это - идеальная защита? Приходит на память случай, когда чит маскировался под популярный Easy Anti-Cheat просто сменив название, работало всё это достаточно долго и сейчас можно изловчиться и обмануть клиент игры, дав ему необходимый минимум данных, что дает обычно античит.

Гибридный античит
Хорошим примером гибридного анти-чита будет разработка Valve -
VAC (Valve Anti-Cheat). !Внимание! хороший пример не как анти-чит, а как гибридный анти-чит.

Многоэтапный метод обработки данных, который пролезает всё дальше, вплоть до просмотра DNS-адресов подозрительного юзера. Это означает, что компания теоретически может узнать адреса сайтов, куда вы заходили, однако думаю им это не нужно. На месте машины, увидев слово cheats среди кучи хлама, в совокупности с кучей предшествующих подозрений, я бы дал бан.

К тому же сейчас VAC представляет из себя самообучающуюся машину по истреблению читеров и работает на мой взгляд вполне сносно. Помогают обучаться ей обычные игроки, вглядывающиеся в тысячи реплеев подозрительных личностей каждый день.

Источник: <a rel="nofollow" href="https://zen.yandex.ru/" target="_blank">https://zen.yandex.ru/</a>
Аватар пользователя
Мудрец
5лет

кто-то или что-то хочет влезть в память игры (читать/изменять)? ban.