Как деобфусить файл jar с помощью файла mapping.txt, созданного Proguard?

Это может показаться подозрительным, но мне нужно деобфобывать свое приложение . Некоторое время назад я опубликовал свое приложение, которое я запутал с Proguard. К сожалению, я не сохранил эту версию приложения и сильно изменил код.

Теперь мне нужен код этой старой версии. У меня все еще есть файл mapping.txt, созданный Proguard.

Я преобразовал файл classes.dex в jar (используя инструмент dex2jar), теперь мне нужно деобфисуковать его в соответствии с map.txt. Есть ли инструменты, которые могут мне помочь? Может быть, Прогард?

UPD. Мне нужен инструмент, который может автоматически переименовывать все классы, функции и т. Д., Поэтому мне не нужно делать это вручную. спасибо

Если у вас есть сопоставления, вы можете получить имя каждого класса, поля и метода. Вы можете использовать java-asm (библиотеку модификации байт-кода) для переназначения имен классов и членов. Большая часть работы будет обновлять дескрипторы участников.

Я сделал один для себя, и потребовалось около дня, чтобы он работал надежно.

Редактировать: Это не идеально, но это довольно чертовски близко. Ссылка . Скриншот графического интерфейса пользователя Дайте ему прогвардированный файл jar, сопоставления, и он переименует все, что он может найти. Есть несколько вопросов, но для того, чтобы просто взглянуть на источник, он должен выполнить эту работу. Просто выгрузите банку, которая делает (FileName + «-Re.jar») в декомпилятор, такой как Luyten / JD-GUI. Также входы файлов изменяются только с помощью кнопок. Текстовые поля предназначены только для визуальной обратной связи / подтверждения.

Редактировать 2: Исправлен NPE, возникающий, когда запись класса в сопоставлениях не существует в данной банке.

Редактировать 3: Исправлено множество проблем, в результате чего методы не переименовывались.

Редактирование 4: загрузка скомпилированного jar в github (выпуски, в zip-файле, который он использует в сопоставлении) , добавлена ​​поддержка нескольких типов сопоставления.

Я предлагаю использовать инструмент proguard, как указано в вышеприведенном ответе, вместе с Enigma . Решение вашей проблемы не может быть очень простым, и вам необходимо использовать комбинацию доступных инструментов для ее устранения.