Большинство онлайн-игр страдают от этой проблемы, и есть некоторые компании, разрабатывающие программное обеспечение , чтобы решить эту проблему, но в последнее время из того, что я видел, большинство компаний пытаются избежать того, чтобы эти программы создавали свою собственную систему (метель с надзирателем, aion с их собственной проверкой и т. Д.). ...) но это очень сложный случай, чтобы предотвратить такое ...
Я просто хотел сказать, что я сделал еще одну тему для обсуждения в качестве сообщества вики, предназначенного для публикации приложений, и это функции и идеи, лежащие в основе этого вопроса, здесь не для того, чтобы перечислить их, а для того, чтобы узнать больше о том, каковы были ваши попытки, проблемы на пути и возможные решения Кусок кодов, если приложение и пр.
Какую защиту вы, ребята, используете, чтобы (попытаться) предотвратить такие действия:
- Анти-чит-софт? (пожалуйста, укажите, какие, почему и возможные проблемы, с которыми вы столкнулись, например, aion прекратил использовать GameGuard на стадии бета-тестирования из-за огромного количества проблем совместимости и жалоб от их пользователей)
- Ваш собственный код? (какую проверку вы обычно проводите, чтобы удостовериться в недобросовестных игроках, например, спидхаке, проверке новой локации по скорости + последней локации и т. д ...)
- Нет, мне все равно? (какая-либо личная причина или вклад, которым вы хотели поделиться?)
Любой интересный фрагмент кода, связанный с проблемой, которую вы хотели бы опубликовать?
Не стесняйтесь переделать мой текст, мой английский инст, это здорово? **
источник
Ответы:
К сожалению, действительно трудно остановить людей от мошенничества, поэтому программное обеспечение, такое как Punkbuster, было создано, чтобы попытаться поймать некоторых из них.
Для MMO самое большое, что вы можете сделать, это просто не доверять тому, что отправляет вам клиент . Клиент не должен быть в состоянии сказать вам, куда игрок переместился, какой урон ему был нанесен и т. Д. Вместо этого вы должны отправить управляющий ввод на сервер, подтвердить, что он практичен (нажав кнопку «атака»). 1000 раз в 1 секунду, например, недопустимо), затем обновите симуляцию на сервере. Затем вы отправите соответствующие части нового состояния игры обратно клиенту.
Пока вы проверяете пользовательский ввод, также можно искать тенденции в его вводе. Если вы не разрешаете макросы, вы можете поймать их здесь, заметив, что пользователь нажимал одну и ту же кнопку с точно такими же координатами пикселей с идеальными интервалами в 1 секунду в течение последних 30 минут.
Клиент сам по себе является основным местом, где люди могут обманывать, поэтому такие программы, как Punkbuster, могут сократить количество взломов, целевых роботов и т. Д. Кроме того, не доверяя клиенту и проверяя что-либо, отправленное вам клиентом, вы сможете сократить обман.
источник
Логирование. Все, что происходит на сервере, должно быть зарегистрировано, и в идеале все, что исходит от клиента. Клиент по своей сути ненадежен, но даже регистрация ненадежных данных может быть полезной.
Как только все зарегистрировано, обнаружение читов становится вопросом анализа данных. Некоторые читы будут очевидны (значения вне допустимых диапазонов, например, возможность перемещаться между точками гораздо быстрее, чем обычно позволяет аватар), другие более коварны (например, прицельные роботы, позволяющие нацеливать пиксель на искусственно короткие промежутки времени). Некоторые из них еще сложнее обнаружить (например, Wallhacks), но максимально возможная запись позволяет обнаруживать как автоматически, так и вручную. Есть разные статьи об этом, но, как правило, читы очень легко обнаруживаются при автоматическом обнаружении, потому что они настолько предсказуемы / повторяемы, как и люди-игроки.
Поскольку запись абсолютно всего, скорее всего, невозможна, многоуровневая регистрация полезна. Например, отчетов о мошенничестве пользователей или простой базовой регистрации, которая обнаруживает возможность мошенничества (оценка выше статистической кривой), было бы достаточно, чтобы пометить конкретный клиент / аккаунт / CD-ключ для более подробной регистрации, которая могла бы затем использовать, чтобы доказать вне всякого разумного сомнения, что чит используется.
То, что вы делаете, когда обнаруживаете чит, - это совсем другое дело. Заблокировать аккаунт по факту - это хорошо, особенно если у вас есть достаточно надежный механизм автоматического обнаружения. Ранний запрет предупреждает читы о том, что они обнаруживаются, а также риск ложных срабатываний из-за неубедительных механизмов обнаружения. Слишком поздний бан рискует испортить игровой опыт для других. Это очень серая область, и разработчики должны принять решение.
источник
Предполагая, что вся важная работа в вашей игре происходит на стороне сервера, обман должен быть минимальным или отсутствовать. Если вы хотите ограничить макросы или сделать их неудобными для редактирования пакетов, попросите вашу программу периодически сканировать модули, активные в этом процессе. Если вы найдете, например, WpeSpy.dll, вы будете знать, что они подключены к WPE. Сделайте это для других распространенных инструментов. Это можно обойти, и это гонка вооружений и проигранное дело, но если ваша игра относительно мала, вы можете очень легко сократить количество людей, крутящихся вокруг, примерно в десять раз ... и это может быть хорошо достаточно для вас.
источник
but also send timestamps, and if you get too much drift, you'll know they are using one. Mark their account, but don't kick them immediately -- immediate feedback is a great way for someone to know what your software detects.
я недавно изучал при внедрении системы отметок времени и предупреждений от пользователей, помеченных, в настоящее время я поместил проигрыватель в список, над которым я сейчас работаю, так это то, что если кто-то пользуется большим злоупотреблением, он отправит предупреждение онлайн GM для проверки ...