В целях обучения, как ProGuard
работы я создал крошечный Android
пример, добавил некоторые jar
к нему, написал пару строк кода, включен ProGuard
и так далее.ProGuard не выполняет запутывания методов Объекта
мои варианты Proguard находятся рядом
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
-optimizationpasses 5
-optimizations !class/unboxing/enum
Таким образом, после обратной Engeneering моих имен APK ко всем методам Object
«s, таких как toString()
, hashCode()
, equals()
остается тем же самым. Помимо методов Object
, имена Externalizable
методов тоже остаются
Итак, есть ли у вас какие-либо идеи, почему это происходит, можно ли это вообще исправить?
звучит грустно, поэтому в случае моего readExternal/writeExternal методы содержат некоторую важную логику, которую «хакер» может легко найти из-за имен методов, что я могу сделать в этом случае? –
и спасибо за исправление в скобках –
@MikeHerasimov: Хакер может найти этот код в любом случае. Обфускация ProGuard имеет ограниченное применение с учетом современных инструментов обратного проектирования. – CommonsWare