Sobes.tech
Middle+

Wie stehen Sie zur Code-Obfuskation und welche Schutzmethoden für Code halten Sie für die effektivsten?

sobes.tech KI

Antwort von AI

Positiv. Obfuskation erhöht die Komplexität des Reverse Engineering, erschwert die Codeanalyse für Angreifer.

Die effektivsten Schutzmethoden:

  • Obfuskation: Verwirrung der Code-Logik, Umbenennung von Klassen, Methoden und Feldern. Werkzeuge wie R8/ProGuard.
  • Verschlüsselung: Verschlüsselung sensibler Daten und kritischer Code-Teile.
  • Integrität des Codes: Integritätsprüfungen während der Ausführung, um Modifikationen zu erkennen.
  • Verbergen von Schlüsseln und Geheimnissen: Speicherung sensibler Daten an sicheren Orten, z.B. mit Android Keystore.
  • Schutz vor Debuggern: Erkennung und Gegenmaßnahmen bei Versuchen, JDWP-Debugger anzuschließen.
  • Root/Jailbreak-Erkennung: Deaktivieren von Funktionen oder Beenden der App bei Erkennung eines kompromittierten Geräts.

Ein ganzheitlicher Ansatz, der mehrere Methoden kombiniert, bietet den besten Schutz.

Beispiel für einfache Obfuskation mit R8:

# Alle Klassen, die von Activity erben, beibehalten
-keep public class * extends android.app.Activity

# Optimierungen, die Annotationen entfernen, verhindern.
-keepattributes *Annotation*

# Alle Methoden und Felder in Klassen, die von dieser Methode zurückgegeben werden, beibehalten.
-keepclassmembers class foo.bar.Baz {
  <fields>;
  <methods>;
}

# Entfernen Sie explizit die R.java-Datei.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*