В чем разница между акпанализатором и dex2jar?
Работая над добавлением запутывания в мобильное приложение для Android, я попытался протестировать созданный APK и убедиться, что код запутан. Я сделал это с 2 различными инструментами - apkanalyzer и dex2jar (следуя этому руководству). Я использовал apkanalyzer, чтобы получить все классы с помощью следующей команды:
apkanalyzer dex packages myapp.apk
При проверке имен классов это выглядело так, как будто запутывание работает, как и ожидалось. Но когда я проверил результаты dex2jar (используя JD-Gui), похоже, что запутывание не работает - все имена классов сохранены.
Чтобы убедиться, что Proguard работает, я проверил - mapping.txt
а также seeds.txt
успешно создан. Я также проверяю один класс, который появился на mapping.txt
(и поэтому должен быть запутан) - но на JD-Gui он появляется с настоящим именем, а не запутывается.
Мой вопрос: почему есть разница между выходом apkanalyzer и dex2jar? И какой инструмент производит правильный вывод?
Изменить: я проверил его на демонстрационном проекте и не смог воспроизвести это поведение. Это означает, что что-то странное в том, как настроено наше приложение.
Заранее спасибо!
Omer
1 ответ
Я попробовал это снова этим утром, после закрытия и открытия JD Gui. Теперь я могу правильно видеть обфусцированный код и на JD Gui, так что проблем нет.