Middle+
Какво е вашето мнение за обфускирането на код и кои методи за защита на кода смятате за най-ефективни?
sobes.tech AI
Отговор от AI
Положително. Обфускацията увеличава сложността на обратното инженерство, затруднявайки анализа на кода от нападателите.
Най-ефективните методи за защита:
- Обфускация: Задава объркване на логиката на кода, преименуване на класове, методи и полета. Инструменти като R8/ProGuard.
- Шифроване: Шифроване на чувствителни данни и критични части от кода.
- Цялост на кода: Проверки за цялост на кода по време на изпълнение за откриване на модификации.
- Скриване на ключове и тайни: Съхраняване на чувствителни данни на сигурно място, например с Android Keystore.
- Защита срещу дебъгване: Откриване и противодействие на опити за свързване на JDWP дебъгър.
- Откриване на root/jailbreak: Деактивиране на функционалности или изход от приложението при откриване на компрометирано устройство.
Комплексен подход, който съчетава няколко метода, осигурява най-добрата защита.
Пример за базова обфускация с R8:
# Запазване на всички класове, които разширяват Activity
-keep public class * extends android.app.Activity
# Предотвратяване на премахване на анотации от оптимизация.
-keepattributes *Annotation*
# Запазване на всички методи и полета в класове, които се връщат от този метод.
-keepclassmembers class foo.bar.Baz {
<fields>;
<methods>;
}
# Явно премахване на файла R.java.
-dontwarn **R$*
-dontnote **R$*
-dontoptimize **R$*