2016-03-14 4 views
3

Для оценки я хочу зашифровать все строки в файле APK с помощью DexGuard, но без использования функций обфускации, сжатия или оптимизации.
Возможно ли это, или я вынужден зафрахтовать APK для его шифрования?
Я использую следующую команду для шифрования всех классов:
Шифровать APK без обфускации Dexguard

java -jar dexguard.jar @conf.pro -dontwarn -dontobfuscate -dontshrink -dontoptimize -injar in.jar -libraryjars android.jar -outjars out.apk 

conf.pro выглядит следующим образом:

-dontpreverify 
-repackageclasses '' 
-allowaccessmodification 
-optimizations !code/simplification/arithmetic 
-keepattributes *Annotation* 

-keep public class * extends android.app.Activity 
-keep public class * extends android.app.Application 
-keep public class * extends android.app.Service 
-keep public class * extends android.content.BroadcastReceiver 
-keep public class * extends android.content.ContentProvider 
#... 
-encryptstrings class uk.co.senab.actionbarpulltorefresh.library.BuildConfig 
-encryptstrings class uk.co.senab.actionbarpulltorefresh.library.PullToRefreshAttacher$ViewDelegate 
-encryptstrings class uk.co.senab.actionbarpulltorefresh.library.PullToRefreshAttacher$Options 
#... 

Я использовал инструмент jar tf ..., чтобы получить все имена классов и затем добавили все классы с -encryptstrings class ... после фильтрации, как в файле conf.pro.
Моя проблема в том, что ничего не зашифровано в out.apk.
Что не так с моими настройками?
Заранее благодарим за любую помощь.

UPDATE:
Я пробовал все виды комбинаций шифровать APK без запутывания, но это не представляется возможным. Итак, мое резюме заключается в том, что шифрование возможно только при запутывании с помощью DexGuard.
Единственные изменения, которые я вижу для шифрования с помощью DexGuard без обфускации, это зашифровать с обфускацией и использовать файл сопоставления для восстановления имен.
Но я не пробовал.

ответ

2

Правильно, что для шифрования строк вам необходимо включить обфускацию.

Для того, чтобы предотвратить любые обфускации классов/методов/полей, которые вы можете добавить следующую конфигурацию:

-keep class * { *; }