Middle+
Jaký je váš názor na obfuskaci kódu a jaké metody ochrany kódu považujete za nejúčinnější?
sobes.tech AI
Odpověď od AI
Pozitivní. Obfuskace zvyšuje složitost reverzního inženýrství, což ztěžuje analýzu kódu útočníky.
Nejúčinnější metody ochrany:
- Obfuskace: Zmatek v logice kódu, přejmenování tříd, metod a polí. Nástroje jako R8/ProGuard.
- Šifrování: Šifrování citlivých dat a kritických částí kódu.
- Integrita kódu: Kontroly integrity kódu při běhu pro detekci modifikací.
- Skrytí klíčů a tajemství: Uložení citlivých dat na bezpečné místo, například pomocí Android Keystore.
- Ochrana před debuggerem: Detekce a odstrašení pokusů o připojení debuggeru JDWP.
- Detekce root/jailbreak: Vypnutí funkcí nebo ukončení aplikace při detekci kompromitovaného zařízení.
Komplexní přístup kombinující více metod poskytuje nejlepší ochranu.
Příklad základní obfuskace pomocí R8:
# Zachovejte všechny třídy, které rozšiřují Activity
-keep public class * extends android.app.Activity
# Zabránit odstranění anotací optimalizací.
-keepattributes *Annotation*
# Zachovejte všechny metody a pole ve třídách, které jsou vráceny touto metodou.
-keepclassmembers class foo.bar.Baz {
<fields>;
<methods>;
}
# Výslovně odstraňte soubor R.java.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*