Какие методы наиболее эффективны для определения наличия / активности приложения-бота (на стороне клиента)?

Каковы наиболее эффективные методы определения наличия / активности приложения-бота?

1 Учитывая, что пользователь может предоставить любой доступ к античит-системе в ОС Windows (XP / 7).

2 Без учета возможной аморальности или незаконности методов.

3 Пренебрежение обнаружением поведения пользователя (например, проверка времени между действиями пользователя или плавности движений мыши или использование CAPTCHA для обнаружения бота или чего-то еще).

Пока что я могу думать о:

  • Проверка флажков INJECTED для событий мыши / клавиатуры.

  • Список процессов сканирования, обнаружение потенциально «плохих» процессов.

  • Проверка целостности приложения во избежание прямых инъекций.

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


person sander    schedule 10.12.2013    source источник
comment
Если вы не установите эквивалент руткита на компьютер пользователя, как это делают некоторые компании (например, Blizzard), вы вряд ли поймаете большую часть читера. И даже тогда это непросто или реально. Интеллектуальный анализ данных на стороне сервера во многих случаях намного надежнее (и меньше проблем).   -  person Damon    schedule 10.12.2013
comment
Я много читал о серверных методах обнаружения ботов (в основном, чисто статистическом сравнении), но я не так много знаю о проверках на стороне клиента. Я думаю, что решение, подобное руткиту, - это то, что мне нужно (поэтому я упомянул № 2 в моем списке), но я до сих пор почти не знаю, что делать.   -  person sander    schedule 12.12.2013


Ответы (1)


Вот хороший пост на эту тему: Как предотвратить мошенничество в нашем (многопользовательском ) игры?

Мои мысли в вашем списке:

  • KbDllHookStruct Injected Flag - вы получите ложные срабатывания для пользователей с виртуальными устройствами. Это также легко подделать несколькими недокументированными методами.
  • Процессы сканирования - также подвержены ложным срабатываниям и потенциальным юридическим проблемам.
  • Обнаружение внедрения - многие законные приложения внедряются в другие процессы (например, DisplayFusion, dxtory, fraps).
  • Проверка наличия ВМ. Игра на виртуальной машине не означает, что игрок жульничает.

Несколько предложений:

  • В своем процессе сканируйте и вычисляйте хэши загруженных модулей (включая ваши собственные) и отключайте / блокируйте при обнаружении вредоносных сборок. Требуется хранилище известных хешей.
  • Проверить наличие отладчика.
  • Проверьте точки останова памяти / оборудования.
  • Векторные проверки на стороне сервера / клиента на скорость и обнаружение телепорта.
  • Проверки на стороне сервера проще реализовать, поддерживать и, как прокомментировал Дэймон выше, они намного надежнее. Все, что есть на клиенте, может быть взломано.
person hyru    schedule 10.12.2013
comment
Спасибо за статью. Я как-то пропустил, когда искал ответ. Знаю - person sander; 12.12.2013
comment
w, что предложенные мной методы не очень эффективны, и поэтому я спрашиваю. Как упоминалось ранее, я осознаю тот факт, что проверки на стороне сервера могут быть более эффективными и любые решения на стороне клиента могут быть использованы для злоупотреблений. - person sander; 12.12.2013
comment
Игра на виртуальной машине не означает, что игрок жульничает. Да, но другие проверки не заслуживают доверия в случае наличия ВМ. - person sander; 12.12.2013