Sobes.tech
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$*