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

Есть ли инструмент для деобфушения java-обфускационных кодов?

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

Ответ 1

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

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

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

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

  • изменить метод bytecode любым способом

Ответ 2

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

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

Удачи.

Ответ 3

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

https://github.com/Contra/JMD

Ответ 4

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

Ответ 5

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

Ответ 6

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

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