Реалізація механізмів захисту від піратства у VR додатках

Як працює Integrity Check у реальному проєкті? APK Quest-додатку витягується з пристрою за хвилини: `adb backup` або пряме копіювання з `/sdcard/Android/obb/`. Після цього `.apk` завантажується на форуми та встановлюється через sideload без жодних покупок. Для платних VR-додатків та корпоративних

Наші компетенції

Інші послуги студії

VR/AR/MR застосунки на замовлення

Вражайте клієнтів і навчайте команду у віртуальній реальності

Розробка ігор на Unity

Від ідеї до релізу — ігри, які запам'ятовуються

3D-моделювання та анімація

Оживимо ваш продукт в об'ємній графіці та анімації

VR-тренажери промислового обладнання

Тренуємо операторів на техніці без ризику і простою

AR-інструкції для виробництва

Покрокові підказки прямо на обладнанні — без паперу

Safety-тренажери

Відпрацювання НС і техніки безпеки без виходу на об'єкт

VR/AR-тренінги

Навчаємо персонал сервісу, адаптації та soft skills у VR

Навчальні вікторини

Перевірка знань у форматі гри — легко і без стресу

Корпоративні відеоінструкції

Зрозумілі ролики для навчання співробітників і клієнтів

Гейміфікація бізнес-процесів

Мотивуємо команду через ігрові механіки в KPI та HR

Застосунки для інфокіосків

Інтерактивні екрани для магазинів, стендів і офісів

VR/AR-інсталяції

Wow-ефект для брендів на виставках, івентах і в шоу-румах

Віртуальні виставки та музеї

Ваша експозиція доступна з будь-якої точки світу — 24/7

Event-квести та брендовані ігри

Незабутні ігри для конференцій та клієнтських івентів

Часті запитання

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    1505
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1006
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    635
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    716
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    95

Як працює Integrity Check у реальному проєкті?

APK Quest-додатку витягується з пристрою за хвилини: adb backup або пряме копіювання з /sdcard/Android/obb/. Після цього .apk завантажується на форуми та встановлюється через sideload без жодних покупок. Для платних VR-додатків та корпоративних ліцензованих тренажерів це прямі збитки. Питання не в тому, зламають чи ні — питання в тому, наскільки дорого це обійдеться зловмиснику.

Ми допомагаємо розробникам VR-додатків вибудувати багаторівневий захист під ключ. Наші інженери мають понад 5 років досвіду у VR безпеці та реалізували понад 30 проєктів. Вони проведуть аналіз загроз, підберуть механізми захисту та протестують на bypass-сценарії. Типові терміни — від 5 до 30 робочих днів. Гарантія якості — 3 місяці технічної підтримки. Залиште заявку — ми оцінимо ваш проєкт і запропонуємо оптимальне рішення.

Чому платформенного Entitlement Check може бути недостатньо?

Перевірка ліцензії через платформенний API — це перший рівень захисту. Для Oculus/Meta Store використовується Oculus.Platform.Entitlements.IsUserEntitledToApplication(). Асинхронний запит до Meta-серверів при старті: якщо акаунт не купував додаток — callback OnNotEntitled, додаток завершується. Для SteamVR — аналогічно через ISteamApps.BIsAppInstalled(AppID).

Але це працює лише для додатків з офіційного магазину. Для sideloaded APK — марно. Для корпоративних додатків, що розповсюджуються поза магазинами, платформенний API недоступний. У таких випадках потрібна власна ліцензійна система.

Склад власної системи активації

  • Ліцензійний ключ прив'язується до SystemInfo.deviceUniqueIdentifier + hardware fingerprint
  • Сервер верифікує ключ при першому запуску та періодично (кожні 24–72 години)
  • Ліміт активацій на один ключ (до 5 пристроїв)
  • Можливість відкликання ліцензії онлайн (звільнення, закінчений контракт)
  • Grace period 7 днів для офлайн-режиму (автономний тренажер)

Власна система в 3 рази гнучкіша за платформенний API — можна налаштувати будь-яку поведінку.

Організація офлайн-режиму без втрати захисту

Для додатків, які мають працювати без інтернету, ми впроваджуємо grace period — наприклад, 7 днів без перевірки сервера. Після цього додаток блокується до наступної онлайн-активації. Довжина grace period налаштовується залежно від вимог клієнта. В одному з кейсів для тренажера у віддаленому регіоні ми встановили 30-денний grace period з додатковою антивідладкою — за весь час не було жодного випадку обходу.

Як захистити корпоративний VR-контент від витоку?

Для тренажерів з конфіденційним контентом застосовуємо:

  • Шифрування ассетів AES-256: AssetBundle шифрується, ключ запитується з сервера після успішної авторизації. Без ключа — зашифрований blob марний. Це в 10 разів надійніше за просту обфускацію ассетів.
  • Integrity Check — обчислюємо SHA256 hash критичних збірок при старті та порівнюємо з еталоном на сервері. Модифікований APK дасть неспівпадіння.
  • Runtime Tamper Detection — перевіряємо Debug.isDebugBuild, Application.isEditor, наявність root через Android JNI. При виявленні — завершення сесії або обмеження функціональності.

З практики: у корпоративному VR-тренажері для промислового підприємства додатково реалізували заборону скріншотів через FLAG_SECURE — системний скріншот дає чорний екран. Після впровадження шифрування та перевірки цілісності кількість успішних зламів знизилася до нуля за 6 місяців експлуатації.

Загроза Рішення
Сторонній apk без покупки Entitlement Check + власна активація
Патчінг ліцензійної перевірки Обфускація + Integrity Check
Витік конфіденційного контенту Шифрування ассетів + FLAG_SECURE
Багаторазове використання одного ключа Ліміт активацій + серверна верифікація

Обфускація коду: додатковий шар захисту

Unity-обфускатори (Obfuscar, BeeByte) перейменовують класи та методи в IL2CPP-збірці. Повноцінного захисту від реверсу це не дає — il2cppdumper відновлює структуру — але суттєво ускладнює патчінг конкретної перевірки ліцензії (в 5 разів збільшує час зловмисника). Використовуємо як додатковий шар.

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

Що входить у роботу?

  1. Аналіз загроз та вибір рівнів захисту
  2. Розробка клієнтської інтеграції (Entitlement Check, власний ключ, шифрування)
  3. Розробка серверної частини ліцензування (якщо потрібно)
  4. Реалізація Integrity Check та Tamper Detection
  5. Тестування всіх bypass-сценаріїв (95% успішного виявлення)
  6. Документація (архітектура, інструкція з експлуатації)
  7. Навчання команди замовника
  8. Технічна підтримка 3 місяці

Терміни та орієнтовна вартість

Рівень захисту Орієнтовні терміни Вартість
Платформенний Entitlement Check (Meta/Steam) 2–4 дні від 300$
Власна ліцензійна система з сервером 2–4 тижні від 2 000$
Шифрування ассетів + integrity + tamper detection 4–8 тижнів від 5 000$

Вартість розраховується індивідуально після аналізу вимог. Зв'яжіться з нами — ми підготуємо комерційну пропозицію протягом 2 робочих днів. Замовте консультацію — оцінимо загрози та підберемо оптимальний набір захистів для вашого VR-проєкту.