Code-Verschleierung in Flutter (Android)
Die Geschichte beginnt, als wir gerade dabei waren, unsere Flatter-App für die Produktion zu veröffentlichen. Zuvor durchlief die App jedoch den VAPT-Prozess ( Vulnerability Assessment and Penetration Testing ).
Was ist Code-Verschleierung?
Code-Verschleierung ist der Prozess, den Code eines Programms schwer verständlich zu machen, normalerweise mit dem Ziel, es schwieriger zu machen, ihn zurückzuentwickeln oder zu modifizieren. Dies kann durch verschiedene Techniken erfolgen, z. B. indem Variablen- und Funktionsnamen unlesbar gemacht werden oder indem dem Code zusätzliche Ebenen der Umleitung oder Komplexität hinzugefügt werden. Verschleierung wird häufig verwendet, um geistiges Eigentum zu schützen oder böswillige Manipulationen an einem Programm zu verhindern. (Dank an ChatGPT ).
Warum ist Code-Verschleierung?
Wenn Sie eine App entwickeln, bei der die Sicherheit der Benutzerdaten an erster Stelle steht, können Sie keine Kompromisse eingehen. Obwohl narrensichere Sicherheit ein Mythos ist. Aber wir können es bis zu einem gewissen Grad maximieren, indem wir diese Methoden anwenden:
- Schrumpfen Sie Ihren Code (oder Tree Shaking) : Es erkennt und entfernt unbenutzte Klassen, Felder, Methoden und Attribute sicher aus Ihrer App.
3. Proguard aktivieren: Verwenden Sie Proguard-Regeln, um zu definieren, welche Dateien Sie während des Minifizierungs- und Verkleinerungsprozesses nicht ändern möchten.
Lassen Sie uns zum Wie-Teil springen
Verschleierung mit Flatterbefehl
export version=1.0.0
flutter build apk --release --shrink --obfuscate --split-debug-info=misc/mapping/${version}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Erläuterung :
- Es verwendet Ihre Signaturkonfigurationen für den Freigabemodus. Sie müssen eine .jks-Datei und eine key.properties-Datei erstellen, in der Sie Ihre Anmeldeinformationen angeben können.
- Bewahren Sie proguard-rules.pro im App-Ordner auf, damit Sie Ihre Regeln darin definieren können. Lesen Sie hier , wie Sie Proguard-Regeln definieren.
- Um Flatterdateien während der Verschleierung zu schützen, verwenden Sie diese Zeilen in Ihrer proguard-rules-Datei:
#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class org.xmlpull.v1.** { *;}
-dontwarn org.xmlpull.v1.**
Jetzt ist es Zeit für einen Profi-Tipp
Wenn Sie bis hierher gekommen sind, dann ist hier ein Geschenk für Sie. Stürzt Ihre App nach der Aktivierung von Proguard immer wieder ab?
Versuchen Sie diesen Hack, um ihn zu debuggen:
Release zum Debuggen ersetzen und App im Debugmodus ausführen.
buildTypes {
debug {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Das ist alles für heute. Danke, dass du bis zum Ende geblieben bist. Vorschläge sind willkommen.
Verbinden wir uns jetzt auf Twitter , Instagram oder LinkedIn .

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































