joystickControl Flow Flattening (Ofuscación avanzada del flujo)

El Control Flow Flattening es una técnica de ofuscación pasiva utilizada para dificultar la ingeniería inversa y el análisis estático del código fuente o del bytecode de una aplicación. Al interferir directamente en la organización del flujo de ejecución, esta técnica reduce la legibilidad de la lógica interna, protegiendo algoritmos propietarios y reglas de negocio sensibles contra el entendimiento y la copia indebida.

Mecanismo Técnico: MAD aplica el Control Flow Flattening al reestructurar el flujo de ejecución de la aplicación de forma no lineal e intencionalmente compleja. Esta transformación rompe la relación lógica directa entre los fragmentos del código, fragmentando la ejecución en múltiples caminos artificiales. Como resultado, las herramientas de descompilación y análisis estático pasan a presentar una visión distorsionada y poco representativa de la lógica original, haciendo que el análisis manual y automatizado sea más difícil.

<bundleObfuscation>
    <!--
    Habilita la ofuscación de los archivos Dex de Android en la aplicación. La minSdkVersion de la aplicación
    debe ser al menos 23.
    -->
    <obfuscateDex>true</obfuscateDex>


    <!--
    Habilita la ofuscación de los assets de la aplicación. Cada elemento <asset> define una ruta a ofuscar. La ruta puede
    incluir comodines y es relativa al directorio `assets/` (p. ej. `<asset>secrets/*.txt</asset>` coincidirá con cada
    archivos ".txt" en `assets/secrets`).
    -->
    <obfuscateAssets>
        <asset>certificates/*.der</asset>
    </obfuscateAssets>
    
    <!--
    Habilita la ofuscación de algunos archivos asset en la aplicación. La opción <stack> en <general> debe estar
    configurada de acuerdo con la pila de su aplicación para que la ofuscación se aplique a los archivos correctos.
    -->
   	<obfuscateJs>true</obfuscateJs>
</bundleObfuscation>

Última actualización