La ofuscación del SDK de Mad protege datos de texto sensibles dentro de binarios y frameworks inyectados al transformar cadenas legibles en bytecode no legible. Analiza el binario de destino en busca de elementos en texto plano, como claves de API, endpoints de URL, tokens de autenticación, cadenas de conexión a bases de datos y otros textos codificados directamente en el código, y luego los cifra o codifica en un formato ofuscado.
Al utilizar la CLI, el cliente puede especificar si solo CFStrings, CStrings o ambos deben ser ofuscados, y qué SDKs deben ser objetivo. Por defecto, el ejecutable principal de aplicaciones iOS protegidas por Mad es el objetivo de la ofuscación de cadenas.
La ofuscación de cadenas puede activarse o desactivarse según el valor StringObfuscation en el archivo config.plist.
Las cadenas permitidas (whitelist) pueden definirse en el archivo config.plist en el arreglo SDKObfuscationWhitelistedStrings.
Los límites para la cantidad de cadenas pueden definirse en esta sección.
Durante la ejecución (runtime), las cadenas originales se descifran dinámicamente en la memoria solo cuando es necesario, evitando que herramientas de análisis estático extraigan fácilmente información sensible.
Esto añade una capa extra de protección contra ingeniería inversa, haciendo significativamente más difícil para atacantes descubrir credenciales incrustadas o estructuras internas de API solo inspeccionando el binario.