Назад к вопросам
Middle+
108
questionbank

Как вы относитесь к обфускации кода и какие методы защиты кода, по вашему мнению, являются наиболее эффективными?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Положительно. Обфускация повышает сложность реверс-инжиниринга, затрудняя анализ кода злоумышленниками.

Наиболее эффективные методы защиты:

  • Обфускация: Запутывание логики кода, переименование классов, методов и полей. Инструменты вроде R8/ProGuard.
  • Шифрование: Шифрование чувствительных данных и критических частей кода.
  • Целостность кода: Проверки целостности кода во время выполнения для обнаружения модификаций.
  • Скрытие ключей и секретов: Хранение чувствительных данных в безопасном месте, например, с использованием Android Keystore.
  • Защита от отладчика: Обнаружение и противодействие попыткам подключения JDWP-отладчика.
  • Обнаружение рута/джейлбрейка: Отключение функциональности или выход из приложения при обнаружении скомпрометированного устройства.

Комплексный подход, сочетающий несколько методов, обеспечивает наилучшую защиту.

Пример базовой обфускации с помощью R8:

# Keep all classes that extends Activity
-keep public class * extends android.app.Activity

# Prevent optimization from removing annotations.
-keepattributes *Annotation*

# Keep all methods and fields on classes that are returned by this method.
-keepclassmembers class foo.bar.Baz {
  <fields>;
  <methods>;
}

# Explicitly remove the R.java file.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*