DexGuard: bu nima, obfuskatsiya va Android ilovalarini himoya qilish

Muallif: IT Sectr Nashr etilgan: 2026-04-03 O'qish vaqti: 8 daq

DexGuard — Guardsquare tomonidan taqdim etilgan Android ilovalarini teskari muhandislikdan himoya qilish yechimi. Asbob DEX-baytkodini yig'ish bosqichida obfuskatsiya, shifrlash va proaktiv monitoringni amalga oshiradi. Guardsquare, 2025 ma'lumotlariga ko'ra, mahsulot 10 000 dan ortiq tijorat loyihalarida, jumladan bank va to'lov tizimlarida qo'llaniladi. DexGuard ProGuard imkoniyatlarini kengaytirib, ilova manba kodini o'zgartirmasdan dekompilyatsiya va runtime hujumlaridan himoya qo'shadi.

Asosiy jihatlar

  • DexGuard — Android uchun tijorat obfuskatori, ProGuardning kengaytirilgan reverse engineering himoyasi bilan vorisi
  • Satr va sinflarni shifrlash yig'ish bosqichida sodir bo'ladi, DEX faylining read bo'limlarini statik tahlil uchun imkonsiz qiladi
  • Yaxlitlik nazorati APK imzosini runtime-da tekshiradi va o'zgartirish aniqlanganda bajarishni to'xtatadi
  • Debugger, emulyator va Fridani aniqlash runtime-da dinamik tahlilning oldini oladi
  • RASP agenti ishlayotgan qurilmada xotira manipulyatsiyalari va tizim chaqiriqlarini tutib olishni aniqlaydi

DexGuard nima?

DexGuard — ProGuard-ni yaratgan jamoa (Eric Lafortune) tomonidan ishlab chiqilgan Android ilovalarini obfuskatsiya va himoya qilish uchun tijorat vositasi. Mahsulot 2012-yilda ProGuard-ning standart obfuskatsiyasi yetarli bo'lmagan loyihalar uchun kengaytma sifatida paydo bo'ldi. DexGuard post-kompilyatsiya bosqichida ishlaydi, DEX-baytkodini APK paketlashdan oldin himoyalangan shaklga o'zgartiradi.

DexGuard arxitekturasi ko'p darajali himoya modeliga asoslangan. Birinchi daraja — overload induction yordamida sinf, metod va maydon nomlarini obfuskatsiya qilish. Ikkinchi — satr konstantalarini shifrlash va ularni runtime-da stub-metodlar orqali yuklash. Uchinchi — imzo yig'indisini tekshirish orqali APK yaxlitligini nazorat qilish. Guardsquare (2025) texnik hisobotiga ko'ra, bu darajalarning kombinatsiyalangan qo'llanilishi ilova tahlili vaqtini bir necha daqiqadan bir necha haftagacha oshiradi.

DexGuard Android loyihalarining barcha turlarini qo'llab-quvvatlaydi: ilovalar, kutubxonalar, SDK va Unity o'yin loyihalari. Asbob com.guardsquare.dexguard plagini orqali standart Gradle pipeline-ga integratsiyalanadi va sozlashdan keyin qo'l aralashuvini talab qilmaydi.

DexGuard-ning ochiq manbali analoglardan asosiy farqi — runtime-da faol himoya. Asbob nafaqat kodni chalkashtiradi, balki ilova ishlashi vaqtida tekshiruvlar o'tkazuvchi agent qo'shadi. Bu Frida, Xposed yoki JDWP orqali debug kabi hujumlarni aniqlash va ularga reaksiya berish imkonini beradi: favqulodda to'xtatish, soxta ma'lumotlar yaratish yoki serverga xabar berish.

DexGuard-da obfuskatsiya qanday ishlaydi

DexGuard-da obfuskatsiya jarayoni har biri ma'lum bir hujum vektoriga qaratilgan ketma-ket baytkod transformatsiya bosqichlaridan iborat.

Nomlarni overload bilan obfuskatsiya qilish

Standart obfusktor nomlarni bir belgili a, b, c bilan almashtiradi. DexGuard overload induction dan foydalanadi — bir xil qisqa nomni turli imzoli metodlarga tayinlaydi. Dekompilyator overload-ni hal qila olmaydi va noto'g'ri kod yaratadi. Guardsquare testlariga ko'ra, nomlarni overload qilish dekompilyatsiya xatolar sonini 78% ga oshiradi.

Konstantalarni shifrlash

Satr literallari, URL-lar, API kalitlari va tokenlar yig'ish bosqichida AES-256 algoritmi bilan shifrlanadi. Runtime-da stub-metod satrni ishlatishdan oldin deshifrlaydi va keyin xotira maydonini tozalaydi. Bu DEX faylidagi satrlarni statik ko'rishdan himoya qiladi. Shifrlashsiz natija misoli: hujumchi strings dexguard.apk ni ishga tushiradi va barcha API endpointlarini ochiq shaklda ko'radi.

Kod yaxlitligi nazorati

DexGuard har bir DEX fayli uchun SHA-256 hash hisoblaydi va qiymatni native qatlamda saqlaydi. Ilova ishga tushirilganda agent joriy hashni etalon bilan taqqoslaydi. Farq bo'lsa (o'zgartirilgan APK), ilova to'xtatiladi. Qo'shimcha ravishda resurslar va manifest yaxlitligini tekshirish sozlanishi mumkin.

groovy
// build.gradle (ilova darajasi)
buildscript {
    repositories {
        maven { url "https://guard repositories.com/dexguard" }
    }
    dependencies {
        classpath "com.guardsquare:dexguard-gradle-plugin:9.1.05"
    }
}

apply plugin: "com.guardsquare.dexguard"

android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            dexguard {
                config "dexguard-project.txt"
            }
        }
    }
}

DexGuard vs ProGuard: asosiy farqlar

Ikkala vosita bir kompaniya tomonidan ishlab chiqilgan, ammo turli stsenariylar uchun mo'ljallangan. ProGuard — Android SDK-ga sukut bo'yicha kiritilgan ochiq manbali optimizator va minimal obfusktor. DexGuard — bepul versiyada mavjud bo'lmagan himoya darajalarini qo'shadigan tijorat mahsuloti.

XususiyatProGuardDexGuard
LitsenziyaOchiq manba (GPL)Tijorat
Nom obfuskatsiyasiOddiy almashtirishOverload induction
Satrlarni shifrlashYo'qAES-256
RASP himoyasiYo'qHa
Fridani aniqlashYo'qHa
Debugdan himoyaYo'qHa
Yaxlitlik nazoratiYo'qSHA-256 hash
Unity qo'llab-quvvatlashYo'qHa

Asboblar o'rtasidagi tanlov himoyalangan ma'lumotlar sinfi bilan belgilanadi. Oddiy mobil ilova uchun ProGuard yetarli. Bank, to'lov va tibbiy ilovalar uchun, kodning oshkor bo'lishi moliyaviy yoki tartibga solish risklarini keltirganda, DexGuard tavsiya etilgan yechimdir. OWASP Mobile Top 10 (2024) ga ko'ra, maxfiy ma'lumotlarga ega ilovalarda obfuskatsiyaning yo'qligi kritik risk hisoblanadi.

DexGuard-ni Gradle loyihasida sozlash

DexGuard integratsiyasi ildiz build.gradle-da Guardsquare omborini ulash bilan boshlanadi. 9.x versiyadagi plagin AGP 7.4–8.5 va Gradle 7.6–8.7 bilan mos keladi. Himoya konfiguratsiyasi alohida dexguard-project.txt faylida belgilanadi, unda muayyan usullar faollashtiriladi.

groovy
// ildiz build.gradle
buildscript {
    repositories {
        maven { url "https://maven.guardsquare.com/dexguard" }
    }
}

// dexguard-project.txt — minimal konfiguratsiya
# Satrlarni shifrlash
@stringEncryption

# Nomlarni overload bilan obfuskatsiya qilish
@overloadInduction

# APK yaxlitligi nazorati
@integrityCheck

# Debug va emulyatordan himoya
@antiDebug
@antiEmulator

@stringEncryption va @overloadInduction direktivalari tijorat kodini himoya qilish uchun kalit hisoblanadi. Barcha annotatsiyalar faollashtirilganda, yig'ish vaqti 30–60 soniyaga oshadi, bu himoya darajasi bilan oqlanadi. Konfiguratsiya VCS-da saqlanadi va faqat release qurilishiga qo'llaniladi.

Reflection orqali ishlatiladigan sinflar uchun istisnolarni sozlash muhim. DexGuard, ProGuard kabi, reflection-ni avtomatik tahlil qilmaydi. dexguard-project.txt-da Class.forName yoki @JavascriptInterface orqali yuklanadigan kutubxona sinflari uchun -keep qoidalari qo'shilishi kerak.

groovy
// dexguard-project.txt — keep qoidalari
# Gson model sinflarini saqlash
-keep class com.example.model.** { *; }

# WebView interfeyslarini saqlash
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}

# Firebase crash hisobotlarini istisno qilish
-keep class com.google.firebase.** { *; }

DexGuard himoya usullari

DexGuard 20 dan ortiq himoya usullarini o'z ichiga oladi, statik (yig'ish bosqichida) va dinamik (runtime-da) bo'linadi. Muayyan usullarni tanlash ilova tahdid modeliga bog'liq.

Statik himoya

Resurslarni shifrlash — tasvirlar, aktivlar va konfiguratsiya fayllari birinchi kirishda shifrlanadi va deshifrlanadi. Boshqaruv oqimini chalkashtirish (control flow obfuscation) o'lik kod kiritadi va ko'rsatmalar ketma-ketligini o'zgartirib, baytkodni jadx kabi dekompilyatorlar uchun o'qib bo'lmas qiladi. Konstantalarni yashirish (constant hiding) raqamli literallarni runtime-da hisoblanadigan arifmetik ifodalar bilan almashtiradi.

Dinamik himoya (RASP)

Runtime Application Self-Protection — ilova ichida bajarilish muhitining xatti-harakatini kuzatuvchi agent. DexGuard RASP aniqlaydi: /proc/self/maps orqali Frida ulanishi, Xposed Framework mavjudligi, debugger ostida ishga tushirish (JDWP), Android emulyatori (QEMU). Tahdid aniqlanganda siyosat ishga tushadi — crash yoki noto'g'ri ma'lumotlar yaratish. OWASP Mobile Security (2025) tadqiqotiga ko'ra, RASP himoyasi odatdagi avtomatlashtirilgan hujumlarning 94% ini to'xtatgan.

Vaqtga asoslangan hujumlardan himoya

DexGuard kodning muhim qismlariga tasodifiy kechikishlar qo'shadi, dinamik tahlilda sinash vaqtini oshiradi. Parametr millisekundlarda belgilanadi va har bir yig'ishda randomizatsiya qilinadi. Bu fuzzing vositalari va avtomatik skanerlardan foydalanishni qiyinlashtiradi.

Integratsiya qoidalari va muvofiqlik

Mavjud loyihaga DexGuard joriy etishda kutubxonalar va mashhur SDKlar bilan orqaga muvofiqlikni hisobga olish kerak. Ba'zi kutubxonalar reflection chaqiriqlari sababli ekstremal obfuskatsiya bilan mos kelmaydi.

Mashhur SDKlar bilan muvofiqlik

DexGuard to'g'ri keep qoidalari bilan Firebase Crashlytics, Google Analytics, Google Play Services, Retrofit, OkHttp, Glide va Gson bilan mos keladi. Annotatsiyalar va kod yaratishdan foydalanadigan kutubxonalar (Dagger, Hilt, Room, DataBinding) yaratilgan sinflarni aniq saqlashni talab qiladi. Guardsquare jamoasi mashhur SDKlar uchun rasmiy konfiguratsiya namunalarini nashr etadi.

Atrof-muhit talablari

Minimal talablar: Android Gradle Plugin 7.4, Gradle 7.6, JDK 11. DexGuard 9.1 targetSdk 34 va compileSdk 34 ni qo'llab-quvvatlaydi. Java 17 va AGP 8.2+ uchun DexGuard 9.2 va undan yuqori versiya talab qilinadi. Asbob to'liq optimallashtirish rejimida R8 bilan mos kelmaydi — DexGuard ishlatilganda R8 avtomatik o'chiriladi.

Obfuskatsiyadan keyin sinov

DexGuard sozlangandan so'ng, reflection va dinamik sinf yuklash ta'sir qilgan barcha yo'llarning regressiya sinovi o'tkazilishi kerak. Relizdan oldin himoya faol bo'lgan build-da UI avtotestlarini ishga tushirish tavsiya etiladi. Guardsquare ilovani buzmasdan runtime-da ClassNotFoundException xatolarini qayd etuvchi DexGuard Tracer vositasini taqdim etadi, keep qoidalarini tuzatishni osonlashtiradi.

Tez-tez beriladigan savollar

DexGuard ProGuard-dan qanday farq qiladi?

ProGuard — asosiy nom almashtirish va baytkod optimallashtirish bilan bepul obfusktor. DexGuard AES-256 satr shifrlash, nomlar uchun overload induction, runtime-da RASP agenti, APK yaxlitligi nazorati va Frida, Xposed, emulyator va debugger aniqlashni qo'shadi. ProGuard oddiy ilovalar uchun yetarli, DexGuard — bank va korporativ ilovalar uchun.

DexGuard litsenziyasi qancha turadi?

DexGuard yillik to'lov bilan tijorat litsenziyasida tarqatiladi. Narx loyihalar soni va obuna turiga bog'liq. 2025 yil uchun bitta loyiha uchun asosiy litsenziya 5 000 USD dan boshlanadi. Startaplar uchun 40% gacha chegirma bilan hamkorlik dasturi mavjud.

DexGuard Kotlin va Jetpack Compose bilan ishlatilishi mumkinmi?

Ha, DexGuard Kotlin va Jetpack Compose, jumladan korutinlar va Compose kompilyatori bilan to'liq mos keladi. Kotlin kompilyatori tomonidan yaratilgan sinflar uchun qo'shimcha keep qoidalari talab qilinadi. Guardsquare rasmiy hujjatlardagi kotlin-project.txt konfiguratsiya shablonidan foydalanishni tavsiya qiladi.

DexGuard APK hajmini oshiradimi?

Satrlarni shifrlash va RASP agentini qo'shish himoyalangan kod hajmiga qarab APK-ni 5–15% ga oshiradi. Nomlarni obfuskatsiya qilish va boshqaruv oqimini chalkashtirish hajmni oshirmaydi — ular mavjud nomlarni almashtiradi. O'rtacha, to'liq DexGuard himoyasi bilan APK asl nusxadan 8–12% katta bo'ladi.

DexGuard tuzatish uchun o'chirilishi mumkinmi?

Ha, himoya konfiguratsiyasi faqat release qurilish turiga qo'llaniladi. Debug qurilishi uchun DexGuard avtomatik ravishda shifrlash va RASP tekshiruvlarini o'chiradi. Dasturchi gradle.properties faylidagi guard.force.enable=true parametri orqali debug rejimida DexGuard-ni majburiy faollashtirishi mumkin.

Xulosa

  • DexGuard — ProGuard imkoniyatlarini anti-reversing usullarining to'liq to'plami bilan kengaytiruvchi Android uchun tijorat himoya vositasi
  • Nomlarni overload induction bilan obfuskatsiya qilish dekompilyatsiya qilingan kodni hal qilib bo'lmaydigan metod overloadlarini yaratib yaroqsiz holga keltiradi
  • Satr konstantalari va resurslarni AES-256 algoritmi bilan shifrlash DEX faylining jadx va strings dan statik tahlilini yopadi
  • RASP agenti runtime-da Frida, Xposed, JDWP debugger va emulyatorni aniqlaydi, tahdid aniqlanganda favqulodda to'xtatishni amalga oshiradi
  • APK yaxlitligini SHA-256 hash orqali nazorat qilish native qatlamda o'zgartirilgan ilova versiyasini ishga tushirishning oldini oladi
  • @stringEncryption, @overloadInduction va @antiDebug annotatsiyalari bilan Gradle loyihasiga integratsiya 10–15 daqiqa sozlashni talab qiladi
  • DexGuard — kod kompromitatsiyasi moliyaviy risklarni keltiruvchi bank, to'lov va tibbiy Android ilovalari uchun tavsiya etilgan vosita

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing