Middle+
Aký je váš názor na obfuskáciu kódu a aké metódy ochrany kódu považujete za najúčinnejšie?
sobes.tech AI
Odpoveď od AI
Pozitívne. Obfuskácia zvyšuje zložitosť reverzného inžinierstva, sťažujúc analýzu kódu útočníkmi.
Najúčinnejšie metódy ochrany:
- Obfuskácia: Zmätenie logiky kódu, premenovanie tried, metód a polí. Nástroje ako R8/ProGuard.
- Šifrovanie: Šifrovanie citlivých dát a kritických častí kódu.
- Integrita kódu: Kontroly integrity kódu počas behu na detekciu zmien.
- Skrytie kľúčov a tajomstiev: Ukladanie citlivých dát na bezpečné miesto, napríklad pomocou Android Keystore.
- Ochrana pred debuggerom: Detekcia a odstrašenie pokusov o pripojenie JDWP debuggeru.
- Detekcia root/jailbreak: Deaktivácia funkcií alebo ukončenie aplikácie pri zistení kompromitovaného zariadenia.
Komplexný prístup kombinujúci viacero metód poskytuje najlepšiu ochranu.
Príklad základnej obfuskácie pomocou R8:
# Zachovajte všetky triedy, ktoré rozširujú Activity
-keep public class * extends android.app.Activity
# Zabránte odstráneniu anotácií optimalizáciou.
-keepattributes *Annotation*
# Zachovajte všetky metódy a polia v triedach, ktoré sú vrátené touto metódou.
-keepclassmembers class foo.bar.Baz {
<fields>;
<methods>;
}
# Výslovne odstráňte súbor R.java.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*