Criptografia de Recursos
🔐 Criptografia de Recursos (Resource Encryption)
A criptografia de recursos é uma técnica usada para proteger arquivos sensíveis embutidos no aplicativo, como:
- Imagens
- Áudios
- Vídeos
- Strings importantes (mensagens, chaves)
- Arquivos de configuração
- Scripts (Lua, JS, etc.)
O objetivo é evitar que esses recursos sejam acessados, extraídos ou modificados por quem tenta fazer engenharia reversa ou modding.
🧬 Como funciona?
- Criptografia dos arquivos em tempo de build:
- Os recursos são criptografados com um algoritmo como AES, RC4 ou XOR antes de serem empacotados no APK.
- O arquivo
.apk
final não contém os recursos em forma legível.
- Descriptografia em tempo de execução:
- O app carrega o recurso criptografado.
- Um código interno (geralmente nativo em C ou escondido) descriptografa e utiliza o conteúdo em tempo real.
- Carregamento dinâmico:
- Os recursos descriptografados não ficam armazenados fisicamente no dispositivo.
- São usados diretamente na memória (RAM), dificultando extração mesmo com root.
🛡️ Exemplo prático:
Antes (sem proteção):
res/raw/config.json
→ visível no APK- Qualquer pessoa pode abrir e ver/editar
Depois (com criptografia):
res/raw/config.bin
→ criptografado (ex: AES-128)- O app chama um método
decryptResource("config.bin")
que decodifica em tempo real e carrega os dados
✅ Vantagens:
- Protege conteúdo sensível: Evita vazamento de informações internas ou recursos exclusivos.
- Dificulta modding de jogos: Muitos cheats precisam editar arquivos gráficos, sons ou configs.
- Trabalha bem com outras proteções: Pode ser combinada com DEX to C ou obfuscação de fluxo.