A ofuscação do SDK da Mad protege dados de texto sensíveis dentro de binários e frameworks injetados ao transformar strings legíveis em bytecode não legível. Ela analisa o binário de destino em busca de elementos em texto simples, como chaves de API, endpoints de URL, tokens de autenticação, strings de conexão com banco de dados e outros textos codificados diretamente no código, e então os criptografa ou codifica em um formato ofuscado.
Ao utilizar a CLI, o cliente pode especificar se apenas CFStrings, CStrings ou ambos devem ser ofuscados, e quais SDKs devem ser alvo. Por padrão, o executável principal de aplicativos iOS protegidos pelo Mad é o alvo da ofuscação de strings.
A ofuscação de strings pode ser ativada ou desativada com base no valor StringObfuscation no arquivo config.plist.
As strings permitidas (whitelist) podem ser definidas no arquivo config.plist no array SDKObfuscationWhitelistedStrings.
Os limites para a quantidade de strings podem ser definidos nesta seção.
Durante a execução (runtime), as strings originais são descriptografadas dinamicamente na memória apenas quando necessário, impedindo que ferramentas de análise estática extraiam facilmente informações sensíveis.
Isso adiciona uma camada extra de proteção contra engenharia reversa, tornando significativamente mais difícil para invasores descobrirem credenciais incorporadas ou estruturas internas de API apenas inspecionando o binário.