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

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
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Розробка системи防作 для мобільних ігор

Шахрайство в мобільних іграх — це не абстрактна загроза. 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 може порушити економіку гри без будь-якого root-доступу.

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

Емулятори та ферми ботів. Автоматизовані сесії на емуляторах (LDPlayer, BlueStacks) для фермінгу ресурсів, маніпуляції рейтингом, накопичення внутрішньоігрової валюти для перепродажу.

Авторитет сервера — фундаментальний принцип

Все, що має цінність, обчислюється на сервері. Клієнт надає тільки вхідні дані (дії гравця); сервер обчислює результат. Це не «функція безпеки» — це правильна архітектура.

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

Для слабо пов'язаних з сервером ігор (idle games, офлайн-прогресія) це вимагає рефакторингу архітектури — серйозне, але вартісне рішення.

Захист пам'яті: шифрування ігрових змінних

Щоб 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_, наявність служби через 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). Build.FINGERPRINT в емуляторах містить generic або unknown.

Серверна валідація

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

Прості правила: якщо damage_dealt за сесію > max_damage_per_second * session_duration * 1.1 — прапор. Складніше: ML-модель на основі історії нормальних сесій гравців, що виявляє аномальні паттерни.

Реакція: бан проти тіньового бану

Негайний бан помітний — читер створює новий акаунт. Тіньовий бан: читер продовжує грати, але бачить тільки інших читерів або отримує злегка погіршений досвід. Не знає, що забанений. Ефективніше для збереження чистого середовища для чесних гравців.

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

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

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

Для малих ігор базовий захист достатній: виявлення рута/jailbreak + шифрування змінних + авторитет сервера для економіки. Для конкурентних ігор з реальною монетизацією — повна система з ML-виявленням і тіньовим баном. Часова шкала: 1–2 тижні (базовий захист) до 2–3 місяців (повна система з серверною аналітикою). Вартість рассчітується після аналізу архітектури гри та моделі монетизації.