Проводите мероприятия в сфере digital? Расскажите об этом читателям Афиши на Workspace!
Neurosell
Разработка клиентского анти-чита для игр
Neurosell
#Программирование игр

Разработка клиентского анти-чита для игр

65 
Neurosell
Neurosell Россия, Пермь
Поделиться:
Разработка клиентского анти-чита для игр
Клиент

TinyPlay, Inc.

Бюджет

250 000

Сфера

Программное обеспечение

Регион

США, Middletown

Сдано

Июль 2024

Задача

Основной задачей была совместная с клиентом разработка (ко-девелопмент) системы защиты для игр клиента, а также его партнеров, которую в дальнейшем мы разместили в Open-Source и добавили базовую безопасность еще более чем для 100 различных проектов.

Основные критерии для разработки:

- Быстрая интеграция в проекты на базе Unity;

- Высокая скорость работы, маленький размер библиотеки;

- Защита памяти на клиенте;

- Защита от основных чит-схем и внедрения зависимостей;

- Предоставление базового API для отчетности;

Решение

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

При работе над проектом мы выделили основные этапы работы:

- Проведение RND;

- Разработка основного функционала (защита памяти, защита от инъекций в приложение);

- Разработка модулей защиты от основных взломов (speedhack, wallhack, teleport, перемотка времени и др.);

- Разработка вспомогательных модулей (внутриигровая капча, отправка отчетов, системы ложных срабатываний);

- Тестирование на небольших проектах, которые вышли в soft-launch;

- Внедрение в большие проекты;

1Проведение RND

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

Список получился таким (по критичности и значимости):

- Прямой взлом памяти через Cheat Engine и аналоги;

- Взлом через подмену (внедрение) зависимостей (assembly);

- Спидхаки и перемотка времени;

- Wallhack и телепорт-модули;

2Разработка основного функционала

После чего мы приступили к разработке основного функционала. Ядро системы включает в себя узел управления модулями + подключаемые модули внутри игры, каждый из которых включает в себя событие о срабатывании подозрения на читерство.

Самые важные модули - модули защиты памяти и защиты от внедрения зависимостей.

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

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

3Разработка модулей защиты

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

Мы создали следующие модули в дополнение к основным:

- Большое количество библиотек хэширования и шифрования (AES, DES, xxHash, MD5, SHA, RSA и пр.);

- Сериализатор сохранений с шифрованием;

- Защита от перемотки времени (сравнивает локальное время с веб);

- Защита от спидхака (считает реальные тики процессора и тики игры);

- Отправка шифрованных веб-реквестов;

- API для отчетов о читерстве;

- Защита от телепортов и Wallhack;

- Внутреигровая капча;

4Тестирование и внедрение

Последним этапом было тестирование и внедрение в основные продукты TinyPlay. После того, как все тесты прошли успешно - мы совместным решением вывели продукт в Open-Source, и теперь он используется еще в более чем 100 различных проектах.

Результат

После сбора аналитических данных по истечению 4-х месяцев мы получили следующий результат:

- Решение используется в более чем 100 проектах;

- Пресечено более 40,000 попыток взлома;

- Снизили нагрузку на отдел модерирования (фрауд) в реалтайм играх на Photon в 3 раза;

- Сэкономили бюджет клиентам на внедрение Server-Side защиты там, где это не нужно на 80%;

https://github.com/DevsDaddy/GameShield

Стек технологий

  • С# С# Язык программирования
  • Unity Unity Среда разработки

Над проектом работали:


Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Neurosell с удовольствием обсудит вашу задачу

Оставить заявку