Ofuscación de código en Flutter (Android)
La historia comienza cuando estábamos a punto de publicar nuestra aplicación flutter para la producción. Pero antes de eso, la aplicación pasó al proceso VAPT ( Evaluación de vulnerabilidades y pruebas de penetración ).
¿Qué es la ofuscación de código?
La ofuscación de código es el proceso de hacer que el código de un programa sea difícil de entender, generalmente con el objetivo de dificultar la ingeniería inversa o la modificación. Esto se puede hacer a través de varias técnicas, como hacer que los nombres de variables y funciones sean ilegibles, o agregando capas adicionales de direccionamiento indirecto o complejidad al código. La ofuscación se usa a menudo para proteger la propiedad intelectual o para evitar la manipulación malintencionada de un programa. (Gracias a ChatGPT ).
¿Por qué es la ofuscación de código?
Si está desarrollando una aplicación donde la seguridad de los datos del usuario está por encima de todo, no puede comprometerla. Aunque la seguridad a toda prueba es un mito. Pero podemos maximizarlo hasta cierto punto usando estos métodos:
- Reduzca su código (o sacudida del árbol) : detecta y elimina de forma segura las clases, los campos, los métodos y los atributos no utilizados de su aplicación.
3. Habilite proguard: use las reglas de proguard para definir qué archivos no desea cambiar durante el proceso de minificación y reducción.
Pasemos a la parte Cómo
Ofuscación usando el comando 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'
}
}
Explicación :
- Utilizará las configuraciones de firma del modo de lanzamiento. Deberá crear un archivo .jks y una clave.propiedades donde pueda mencionar sus credenciales de firma.
- Mantenga proguard-rules.pro dentro de la carpeta de la aplicación, para que pueda definir sus reglas dentro de ella. Lea aquí cómo definir las reglas de proguard.
- Para proteger los archivos flutter durante la ofuscación, use estas líneas dentro de su archivo 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.**
Ahora es el momento de un consejo profesional.
Si has llegado hasta aquí, aquí tienes un regalo. ¿Su aplicación sigue fallando después de habilitar ProGuard?
Prueba este truco para depurarlo:
Reemplace la versión para depurar y ejecutar la aplicación en modo de depuración.
buildTypes {
debug {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Eso es todo por hoy. Gracias por quedarte hasta el final. Las sugerencias son bienvenidas.
Conectémonos ahora en Twitter , Instagram o LinkedIn .

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































