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

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Разработка античит-системы для мобильной игры
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

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

Читер в мобильной игре — это не абстрактная угроза. GameGuardian на Android меняет значения памяти в реальном времени: у персонажа бесконечное золото, бесконечные патроны, нулевой откат способностей. Lucky Patcher перепаковывает APK, убирает проверки покупок. Cheat Engine через USB-отладку меняет внутриигровые переменные. В играх с PvP-составляющей или монетизацией через внутриигровую валюту это прямые потери — игровой баланс ломается, честные игроки уходят, конверсия в покупки падает.

Анализ вектора атак

Прежде чем писать защиту, нужно понять, что именно атакуют.

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

Трафик. MITM-атака на незащищённый API: клиент отправляет {damage: 500, gold_earned: 100} — подменяем на {damage: 50000, gold_earned: 99999}. Если сервер доверяет клиентским значениям — читер с Burp Suite меняет экономику игры без всякого рута.

Перепаковка APK. Декомпиляция → изменение логики → переподпись. Убирают проверки покупок, меняют константы игровых параметров, добавляют автокликеры.

Эмуляторы и фарм-боты. Автоматизированные сессии на эмуляторах (LDPlayer, BlueStacks) для фарминга ресурсов, накрутки рейтинга, накопления внутриигровой валюты для продажи.

Серверная авторитетность — главный принцип

Всё, что имеет ценность — считается на сервере. Клиент предоставляет только входные данные (действия игрока), сервер считает результат. Это не «функция безопасности» — это правильная архитектура.

Конкретно: клиент не должен отправлять {gold_earned: X}. Клиент отправляет {session_id, actions: [...], timestamp} — сервер рассчитывает, сколько золота заработано по этим действиям. Клиентское значение игнорируется или используется только для валидации (расхождение > N% — подозрение на чит).

Для слабосвязанных с сервером игр (idle games, offline-прогрессия) это требует рефакторинга архитектуры — серьёзное, но окупаемое решение.

Защита памяти: шифрование игровых переменных

Чтобы GameGuardian не нашёл значение 1000 в памяти — не хранить его как int 1000. Обёртка с XOR-шифрованием:

public class SecureInt {
    private int encryptedValue;
    private int key;

    public SecureInt(int value) {
        this.key = new Random().nextInt();
        this.encryptedValue = value ^ key;
    }

    public int get() {
        return encryptedValue ^ key;
    }

    public void set(int value) {
        this.key = new Random().nextInt(); // меняем ключ при каждом set
        this.encryptedValue = value ^ key;
    }
}

В памяти хранится encryptedValue, который меняется при каждом присвоении. GameGuardian сканирует конкретное значение — не находит. Для Unity: есть готовые решения типа ObscuredInt из Pixfort Anti-Cheat Toolkit (PACT), который делает именно это.

Дополнительно: контрольная копия в другом месте памяти с другим XOR-ключом. Периодически сравниваем: если значения расходятся — внешняя модификация памяти.

Детектирование читерских инструментов

GameGuardian. Проверяем наличие пакета catch_.me_.if_.you_.can_ (его packageName), наличие сервиса через ActivityManager.getRunningServices(), процессов через /proc/ файловую систему. GameGuardian также часто требует рут — детектирование рута как дополнительный слой.

Обнаружение отладчика. android.os.Debug.isDebuggerConnected() — стандартный метод. TracerPid в /proc/self/status != 0. Для нативного кода — ptrace(PTRACE_TRACEME) трюк. Отладчик нужен для пошагового изменения переменных и понимания логики.

Скорость ввода. Клик-ферма: интервалы между нажатиями слишком равномерны, нет вариативности человеческого ввода. Серверная статистика: медиана и стандартное отклонение времени между действиями. Аномальная равномерность — подозрение на бота.

Детектирование эмулятора. BlueStacks, LDPlayer, NoxPlayer — у каждого артефакты: специфичные BuildProp значения (ro.product.model, ro.hardware), специфичные пути файловой системы, характеристики GPU (через OpenGL renderer string). Build.FINGERPRINT у эмуляторов содержит generic или unknown.

Валидация на сервере

Серверная сторона собирает телеметрию: временны́е метки действий, последовательности событий, экономические транзакции. Аномалии: урон больше максимально возможного, ресурсы накоплены быстрее чем позволяет игровой темп, телепортация по карте (позиция изменилась невозможным образом).

Простые правила: если damage_dealt за сессию > max_damage_per_second * session_duration * 1.1 — флаг. Сложнее: ML-модель на основе истории сессий нормальных игроков, которая детектирует аномальные паттерны.

Реагирование: бан vs shadow ban

Немедленный бан заметен — читер создаёт новый аккаунт. Shadow ban: читер продолжает играть, но видит только других читеров или получает незначительно ухудшенный опыт. Не знает, что забанен. Эффективнее для сохранения чистой среды для честных игроков.

Технически: флаг is_suspected_cheater на аккаунте, специальный matchmaking pool, замедленный дроп ресурсов. Полный бан — после накопления достаточных доказательств.

Стек и интеграция

Unity: PACT (Pixfort Anti-Cheat Toolkit), GameShield. Нативный Android/Kotlin — собственная реализация с нативным кодом через NDK для критичных проверок. Серверная часть (Node.js, Go, Python) — система правил + очередь событий (Kafka или RabbitMQ) для анализа потока действий.

Для небольших игр достаточно базовой защиты: root/jailbreak detection + шифрование переменных + серверная авторитетность для экономики. Для конкурентных игр с реальной монетизацией — полная система с ML-детектированием и shadow ban. Сроки: от 1–2 недель (базовая защита) до 2–3 месяцев (полная система с серверной аналитикой). Стоимость рассчитывается после анализа архитектуры игры и модели монетизации.