(2009) - Инструмент для деобфускации Java-кодов
-
12-09-2019 - |
Вопрос
Существует ли инструмент для деобфускации запутанных кодов Java?
Коды извлекаются из скомпилированного класса, но они запутаны и нечитабельны.
Решение
Пытались ли вы сделать код менее непонятным с помощью Java-деобфускатор (он же JDO), своего рода умный декомпилятор?
В настоящее время JDO выполняет следующее:
- переименовывает запутанные методы, переменные, константы и имена классов чтобы они были уникальными и более показательными для их типа
- продвигает изменения по всему дереву исходных текстов (бета-версия)
- имеет простой в использовании графический интерфейс
- позволяет указать имя для поля, метода и класса (новая функция!)
В настоящее время JDO не выполняет следующее (но это может произойти однажды)
- измените байт-код метода любым способом
Другие советы
Первым шагом было бы узнать, с помощью какого инструмента он был запутан.Возможно, уже существует "деобфускатор" для конкретного обфускатора.
С другой стороны, вы также можете просто запустить IDE и использовать ее возможности рефакторинга.Переименуйте имена классов, методов и переменных во что-нибудь конфиденциальное.Используйте свое человеческое логическое мышление, чтобы понять, что на самом деле представляет собой код, и разумно назовите их.И картина медленно, но верно росла бы.
Удачи.
Не для того, чтобы заглушать, но я написал инструмент, который работает с большинством коммерческих обфускаторов
Я использовал Java-деобфускатор (он же JDO) но в нем есть несколько ошибок.Он не может работать с именами файлов, чувствительными к регистру.Итак, я изменил исходный код и загрузил патч для этого в sourceforge.Патч, Скачать
Скорее всего, только человеческий разум способен осмыслить это.Возьмите лучший доступный декомпилятор и поразмышляйте над его выводами.
Может быть, это будет работать на Unix / Linux / macOS?
Если это так, вы могли бы перенести один шаг вашего процесса на виртуальную машину, где вы распаковываете код, прежде чем переименовывать слишком длинные имена.Как долго действует ограничение на имя файла в Windows?