2012-03-15 3 views
5

По этой ссылке: http://developer.android.com/guide/developing/tools/proguard.html, они заявляют:Proguard не запутывания Android приложений

ProGuard делает приложение труднее перепроектировать, это важно, что вы используете его, когда ваше приложение использует функции, которые чувствительны к безопасности, например, при лицензировании ваших приложений.

Но это неправда! Я использую новейшую Proguard (4.7), включенную в ADT 17 просмотра 4. Я использую ProGuard при экспорте моего приложения, добавив

proguard.config=proguard-android.txt 

в моем project.properties (ProGuard-android.txt только настройка по умолчанию включена в ADT 17).

Но я могу легко перепроектировать мой APK, возвращая его в исходный код, используя следующие шаги:

  1. Использования АПК-инструмент для извлечения APK.

  2. Использование smali для преобразования .smali файлов в .dex (вы указываете smali к папке, содержащей .smali файлы, как правило, внутри/SRC/COM/[COMPANYNAME]/[имя_приложения])

  3. Использование dex2jar для преобразования полученного .dex файла в .jar

  4. Использование JD-GUI для просмотра полученного файла .jar

Так что мой вопрос: Я делаю что-то неправильно? Или прогура просто совершенно бесполезно при запутывании кода?

+0

Это просто говорит сложнее обратный инженер, но сделать это не так просто, как то, что вы сделали. Я вижу, что люди используют его прежде всего для уменьшения размера кода. –

+0

haha ​​Мне бы хотелось узнать их определение «легко». Любое приложение может быть преобразовано в 4 команды! Я мог бы обучить обезьяну сделать это. –

+0

Чтобы уточнить, что вы видите в 'jd-gui', и что вы ожидаете увидеть? Вы видите исходный код, примерно, как вы его скомпилировали? Вы видите исходные имена переменных в своих методах и т. Д.? –

ответ

1

Если вы используете библиотеки совместимости android.support. *, Это может быть корень проблемы. Добавьте следующие строки в файл конфигурации Proguard:

-dontwarn android.support.** 
-keep class android.support.** { *; } 

Самый простой способ диагностики проблем Proguard строит приложение с помощью Apache Ant. Вы увидите все предупреждения и ошибки в stderr.

Это приложение применительно ко всем библиотекам, использующим динамическую загрузку классов, их отражение и несколько реализаций того же класса, что и версия API.

Смежные вопросы