В чем разница между акпанализатором и 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, так что проблем нет.

Другие вопросы по тегам