Як працює 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 разів збільшує час зловмисника). Використовуємо як додатковий шар.
Детальніше про обфускацію
Обфускація не захищає від видобування ключів, тому ніколи не зберігайте секрети в клієнтському коді. Ліцензійний сервер — єдиний авторитет.Що входить у роботу?
- Аналіз загроз та вибір рівнів захисту
- Розробка клієнтської інтеграції (Entitlement Check, власний ключ, шифрування)
- Розробка серверної частини ліцензування (якщо потрібно)
- Реалізація Integrity Check та Tamper Detection
- Тестування всіх bypass-сценаріїв (95% успішного виявлення)
- Документація (архітектура, інструкція з експлуатації)
- Навчання команди замовника
- Технічна підтримка 3 місяці
Терміни та орієнтовна вартість
| Рівень захисту | Орієнтовні терміни | Вартість |
|---|---|---|
| Платформенний Entitlement Check (Meta/Steam) | 2–4 дні | від 300$ |
| Власна ліцензійна система з сервером | 2–4 тижні | від 2 000$ |
| Шифрування ассетів + integrity + tamper detection | 4–8 тижнів | від 5 000$ |
Вартість розраховується індивідуально після аналізу вимог. Зв'яжіться з нами — ми підготуємо комерційну пропозицію протягом 2 робочих днів. Замовте консультацію — оцінимо загрози та підберемо оптимальний набір захистів для вашого VR-проєкту.






