ProGuard - вопрос по деобфускации кода
Я только что начал знакомится с ProGuard, и мне стало интересно, а как вообще код который был обфусцирован ProGuard можно деобфусцировать? В интернете почитал, говорится, что там нужны маппинги(map.txt), но
- Откуда их брать?
- Если их нету, то можно ли еще как то деобфусцировать? Вопрос именно про обычные Java приложения, не android
Ответы (1 шт):
Сначала немного снобизма. ProGuard - не обфускатор. По функционалу он ближе к минимайзеру чем к обфускатору. Она тупо заменяет названия классов, методов и переменных на максимально возможно короткие, и только. Глядя на код все равно понятно что происходит. А вот обфусцированный код выглядит как месиво из команд, не имеющих никакого смысла.
А теперь по делу. В процессе работы proGuard создает файл mapping.map, где сохраняет информацию о том как что изначально именовалось. Находите куда он у вас сохраняется, забираете
Теперь нужен софт, чтобы этот мап-файл приминить для ренейминга. У меня в android SDK нужное приложение лежит в C:\Users\User\AppData\Local\Android\Sdk\tools\proguard\lib\proguardgui.jar Запускаете, выбираете пункт retrace и вперед
Рядом с этой gui лежит retrace.jar, вдруг разберетесь как ей пользоваться и сделаете себе автоматически весь проект "деобфусцирующий" инструмент