Назад к вопросам
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$*