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