Search in the blog:

2009-12-09

Java декомпилятор

Понадобилось декомпилировать в Java для изучения class-файлы Java. Все это усложняется тем, что они генерировались компилятором Scala 2.7.7 под JDK 1.6.0_16, при этом у компилятора еще и оптимизация включена. Не самая легкая работа для декомпилятора.

Нашел несколько утилит, но результат плохой.

JAD. CMD. Классика, фактически. Сайта уже нет, но последнюю версию нашел. Оно декомпилирует, но кое на чем ломает зубы. На удивление, тяжко берет обработку исключений (блоки try, catch, finally).

JNODE. GUI. Странноватый интерфейс (требует подключения через указание classpath). Большую часть классов не взял, пишет Verification error. Т.е. старье.

Mocha. CMD. Ругается на "xxxx is not a valid Java .class file". Старый.

DJ Java Decompiler. GUI. Просит денег. Морда над jad, результаты аналогичные.

JD GUI. GUI. Декомпилирует, но ошибается, не видит классы с именем $, пропускает куски кода (конструкторы, например).

Jasmine as a patch of Mocha. Похоже морда для Mocha. Не запустился

HBD. На с++, лень собирать.

JDEC. GUI, CMD. Не запустился.

Soot/Dava. Пока не запустился. но надо посмотреть повнимательнее.

JReversePro. CMD. кривовато запускается jreversepro.parser.ClassParserException : (Major: 49, Minor: 0) version not supported. Т.е. старье.

class Cracker
. Сайта уже нет.

JADO Java Decompiler. Не работает.

Jasmine Decompiler. Сайта уже тоже нет

SourceAgain. Не пробовал, просит денег, видимо старье

Jascii. Сайта уже нет.

bytecoding. Не смотрел, по виду старье.

javad. Тоже старье, похоже.


Может еще что-то есть, но сходу не нашел. Как видно, кроме JAD ничего приличного и не появилось.

UPD (2018 год): в результате до сих пор использую CFR - another java decompiler. Мои задачи выполняет, регулярно обновляется.

1 comment:

  1. Есть удобный онлайн декомпилятор Java: http://decompiler.com/
    Всё работает онлайн без скачиваний и установок.

    ReplyDelete

Blog Archive