Intereting Posts
Как открыть подсказку Bluetooth в службах Google Play? Является ли контекст приложения всегда одинаковым независимо от класса? Поиск макетов по идентификатору Общий пользовательский агент Android (UA) Как сделать PhoneGap – Android настроить процесс как один шаг сборки? Нормально ли создавать вспомогательную базу данных ORMLite в классе Application? Онлайн-эмуляторы таблеток для Android Можно ли отключить прокрутку на ViewPager Ошибка создания окончательного архива: найденный дубликат файла для APK: LICENSE.txt Сделать обычную тему использовать нулевой фон (предложение Android lint) ItemTouchHelper сделать перетаскиваемый элемент переместить нижний колонтитул фрагмента Вывод кнопки Capture на Android Эффективная фоновая служба для отслеживания местоположения пользователя Начать анимацию, когда фрагмент виден на ViewPager Приложение-приемник Chromecast не может воспроизводить широко распространенный контент с защитой DRM от приложения отправителя Android

Как деобфусить файл 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 . Решение вашей проблемы не может быть очень простым, и вам необходимо использовать комбинацию доступных инструментов для ее устранения.