Middle+
Como é que você vê a ofuscação de código e quais métodos de proteção de código você acha que são os mais eficazes?
sobes.tech IA
Resposta da IA
Positivo. A ofuscação aumenta a complexidade da engenharia inversa, dificultando a análise do código por parte de atacantes.
Os métodos de proteção mais eficazes:
- Ofuscação: Embaraçar a lógica do código, renomear classes, métodos e campos. Ferramentas como R8/ProGuard.
- Criptografia: Criptografar dados sensíveis e partes críticas do código.
- Integridade do código: Verificações de integridade do código durante a execução para detectar modificações.
- Ocultação de chaves e segredos: Armazenar dados sensíveis em locais seguros, por exemplo, usando Android Keystore.
- Proteção contra depurador: Detecção e contramedidas contra tentativas de conectar depuradores JDWP.
- Detecção de root/jailbreak: Desativar funcionalidades ou sair do aplicativo ao detectar um dispositivo comprometido.
Uma abordagem abrangente que combina vários métodos oferece a melhor proteção.
Exemplo de ofuscação básica com R8:
# Manter todas as classes que estendem Activity
-keep public class * extends android.app.Activity
# Impedir que a otimização remova anotações.
-keepattributes *Annotation*
# Manter todos os métodos e campos em classes retornadas por este método.
-keepclassmembers class foo.bar.Baz {
<fields>;
<methods>;
}
# Remover explicitamente o arquivo R.java.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*