Obfuscation de code dans Flutter (Android)
L'histoire commence alors que nous étions sur le point de publier notre application Flutter à la production. Mais avant cela, l'application est passée au processus VAPT ( Vulnerability Assessment and Penetration Testing ).
Qu'est-ce que l'obscurcissement de code ?
L'obscurcissement du code est le processus qui rend le code d'un programme difficile à comprendre, généralement dans le but de le rendre plus difficile à désosser ou à modifier. Cela peut être fait par diverses techniques, telles que rendre les noms de variables et de fonctions illisibles, ou en ajoutant des couches supplémentaires d'indirection ou de complexité au code. L'obscurcissement est souvent utilisé pour protéger la propriété intellectuelle ou pour empêcher la falsification malveillante d'un programme. (Merci à ChatGPT ).
Pourquoi l'obscurcissement du code ?
Si vous développez une application où la sécurité des données de l'utilisateur est primordiale, vous ne pouvez pas la compromettre. Bien que la sécurité à toute épreuve soit un mythe. Mais nous pouvons le maximiser dans une certaine mesure en utilisant ces méthodes :
- Réduisez votre code (ou tree shaking) : Il détecte et supprime en toute sécurité les classes, champs, méthodes et attributs inutilisés de votre application.
3. Activer proguard : Utilisez les règles proguard pour définir les fichiers que vous ne souhaitez pas modifier pendant le processus de minification et de réduction.
Passons à la partie Comment
Obfuscation à l'aide de la commande flutter
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'
}
}
Explication :
- Il utilisera vos configurations de signature en mode de publication. Vous devrez créer un fichier .jks et un key.properties où vous pourrez mentionner vos identifiants de signature.
- Gardez proguard-rules.pro dans le dossier de l'application, afin que vous puissiez définir vos règles à l'intérieur. Lisez ici comment définir les règles de proguard.
- Pour protéger les fichiers flottants pendant l'obfusaction, utilisez ces lignes dans votre fichier proguard-rules :
#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.**
Il est maintenant temps pour un conseil de pro
Si vous avez atteint jusqu'ici, alors voici un cadeau pour vous. Votre application continue-t-elle de planter après l'activation de Proguard ?
Essayez ce hack pour le déboguer :
Remplacez release pour déboguer et exécuter l'application en mode débogage.
buildTypes {
debug {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
C'est tout pour aujourd'hui. Merci d'être resté jusqu'à la fin. Les suggestions sont les bienvenues.
Connectons-nous maintenant sur Twitter , Instagram ou LinkedIn .
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































