(2009) - инструмент для деобфускации Java-кодов

есть ли инструмент для деобфускации Java запутанных кодов?

коды извлекаются из скомпилированного класса, но они запутаны и не читаются.

6 ответов


вы пытались сделать код менее неясным с помощью Java Deobfuscator (он же JDO), своего рода умный декомпилятор?

В настоящее время JDO делает следующее:

  • переименовывает запутанные методы, переменные, константы и имена классов быть уникальным и более показательным их тип
  • propogates изменения по всему исходному дереву (бета)
  • имеет простой в использовании GUI
  • позволяет указать имя поля, метода и класса (новая функция!)

В настоящее время JDO не делает следующие (но это может однажды)

  • изменить байт-код метода любым способом

первым шагом было бы узнать, с помощью какого инструмента он был запутан. Может быть, уже есть" деобфускатор " для конкретного обфускатора.

с другой стороны, вы также можете просто запустить IDE и использовать его возможности рефакторинга. Переименуйте имена классов, методов и переменных во что-то чувствительное. Используйте свои способности человеческого логического мышления, чтобы понять, что код на самом деле представляет и назвать их чувствительно. И картина будет медленно, но верно расти.

хорошее удача.


не gravedig, но я написал инструмент, который работает на большинстве коммерческих обфускаторов

https://github.com/Contra/JMD


Я Java Deobfuscator (он же JDO) но есть несколько ошибок. Он не может работать с именами файлов с учетом регистра. Поэтому я изменил источник и загрузил патч для этого в sourceforge. патч, скачать


скорее всего, только человеческая сила ума, чтобы понять это. Получите лучший декомпилятор и поразмышляйте над его выходом.


может быть, он будет работать на Unix / Linux / MacOS?

Если это так, вы можете переместить один шаг своего процесса на виртуальную машину, где вы распаковываете код, прежде чем переименовывать слишком длинные имена. Как долго ограничение имени файла в Windows?