Список декомпиляторов Java и класс Java для декомпиляции в Eclipse IDE, IntelliJ IDEA и командной строке.
Автор оригинала: mkyong.
В этой статье показано, как декомпилировать класс Java в среде IDE Eclipse, IntelliJ IDEA и командной строке.
1. Декомпиляторы Java
Декомпилятор Java может конвертировать .class файлы возвращаются в исходный код .java файлы или преобразуют байт-код программы в исходный код. Ниже приведены некоторые из декомпиляторов Java:
- Цветок папоротника – встроенный декомпилятор Java IntelliJ IDEA.
- Проект JD – еще один быстрый декомпилятор Java, инструмент с графическим интерфейсом.
- Procyon – вдохновлен .NET ИЛСпи и Моно. Сесил.
- CFR – другой декомпилятор java, полностью написанный на Java 6, декомпилирует современные функции Java до Java 14.
- Jad – больше не поддерживается, закрытый исходный код.
2. Декомпилируйте класс Java в среде IDE Eclipse
В Eclipse IDE мы можем использовать Расширенный декомпилятор классов плагин для декомпиляции файлов классов Java без прямого исходного кода.
13. Ломаем exe файл в поисках пароля.
2.1 Выберите Справка -> Eclipse Marketplace. для поиска и установки Расширенного декомпилятора классов плагина.
2.2 Выберите Окно -> Настройки -> Общие -> Редакторы -> Ассоциации файлов , настройте *.класс без источника по умолчанию на Средство просмотра декомпилятора классов .
Сейчас , нажмите на класс или методы, нажмите F3 , и плагин автоматически декомпилирует класс Java.
Примечание Для получения более подробной информации об установке и настройке Расширенного декомпилятора классов плагина, посетите этот декомпилятор Java в Eclipse IDE .
3. Декомпилируйте класс Java в IntelliJ IDEA
IntelliJ IDEA имеет встроенный декомпилятор Java, использующий FernFlower . Нам не нужно ничего устанавливать или настраивать, просто нажимаем на класс или метод Java, нажимаем CTRL + B (объявление или использование) или CTRL + ALT + B (реализация), IntelliJ IDEA автоматически декомпилирует класс Java.
4. Декомпилируйте класс Java в командной строке (цветок папоротника)
В этом примере показано, как использовать FernFlower (Java-декомпилятор) для декомпиляции .jar или .class файл в командной строке.
Примечание Размер официального Цветка папоротника немного велик, трудно построить источник. Обходной путь заключается в использовании зеркальной сборки fesh0r Fernflower .
4.1 клон git исходный код и Gradle встраивают исходный код в fernflower.jar
$ git clone https://github.com/fesh0r/fernflower $ cd fernflower # build the source code using Gradle build tool $ gradle build # the fernflower.jar at build/lib/
4.2 В приведенном ниже примере используется fernflower.jar для декомпиляции asm-analysis-3.2.jar Файл JAR в папку /путь/декомпилировать/ (должен существовать).
# decompile JAR or Class files # java -jar fernflower.jar /path/asm-analysis-3.2.jar /path/unknown.class /path/decompile/ $ java -jar fernflower.jar /path/asm-analysis-3.2.jar /path/decompile/ INFO: Decompiling class org/objectweb/asm/tree/analysis/Analyzer INFO: . done INFO: Decompiling class org/objectweb/asm/tree/analysis/AnalyzerException INFO: . done INFO: Decompiling class org/objectweb/asm/tree/analysis/BasicInterpreter INFO: . done
В результате получается новый /path/decompile/asm-analysis-3.2.jar содержащий исходный код *.java .
Извлеките декомпилированный файл JAR.
$ jar -xf /path/decompile/asm-analysis-3.2.jar
5. Рекомендации
- Плагин декомпилятора Java для Eclipse IDE
- Википедия – Декомпилятор
- Википедия – Декомпилятор JD
- Википедия – Декомпилятор JEB
Источник: javascopes.com
Декомпиляция Java приложений
Недавно я задался вопросом: Какой декомпилятор лучше?
Начал мучить Google, экспериментировать. В итоге нашел отличное решение. Как декомпильнуть любую программу и получить рабочие «исходники»? Об этом в сабже.
Краткий обзор популярных декомпиляторов
Mocha
Mocha (автор — Hanpeter van Vliet)— это, вероятно, один из первых выпущенных декомпиляторов Java. Предоставляет консольный пользовательский интерфейс. Его релиз состоялся в 1996-ом году, ещё до того, как появился Java Development Kit версии 1.1
JAva Decompiler
JAva Decompiler, JAD (автор — Pavel Kouznetsov) — по всей видимости, самый
популярный декомпилятор Java. Как и Mocha, этот декомпилятор предоставляет консольный интерфейс, давно не обновляется и не поддерживается, но большое число графических инструментов для работы с ним, в том числе плагин JadClipse для среды разработки Eclipse, делают его и по сей день используемым в качестве подручного средства для декомпиляции небольших классов.
Помимо декомпиляции, JAva Decompiler обладает возможностью дизассемблирования .class-файлов.
DJ Java Decompiler
DJ Java Decompiler (автор — Atanas Neshkov) — долгое время вопреки названию являлся лишь графической оболочкой для предыдущего декомпилятора, позволявшей легко и удобно выбрать аргументы командной строки для вызова JAD. В текущей версии добавлена поддержка аннотаций, но декомпилятор стал условно-бесплатным (необходима покупка после 10 пробных использований).
JD-Core
- Полностью написана на языке C++, что делает декомпиляцию необычайно быстрой
- Не требует для работы Java Runtime Environment и поэтому не требует специальной установки
- Корректно декомпилирует .class-файлы, сгенерированные большинством компиляторов
Fernflower
- Параметрические типы
- Аннотации
- Перечислимые типы
- Утверждения
Мой выбор
- JD-GUI — для просмотра, не более
- Fernflower — полное восстановление
Fernflower будет развиваться в сторону деобфускатора
…
Специальных функций деобфускации Fernflower сейчас не содержит, они будут подключаться в дальнейшем отдельными модулями
Т.к. онлайн версия по неизвестным причинам не работает, а про оффлайн трудно что-либо сказать(кроме того, что качество декомпиляции отменное), не о каких модулях на данный момент речи быть не может.
Не хватает еще модуля переименования
Это да. Поищем что-то такое в интернетах.
На выручку придет Proguard, но необыкновенный
ProGuardDeobfuscator — небольшая модификация программы ProGuard, превращающая ее в квази-деобфускатор. В процессе обработки короткие обфусцированные имена пакетов, классов, полей и методов заменяются на более осмысленные и уникальные в пределах Jar файла.
Скачать исходники и сам деобфускатор: projectd8.org/Programs/Java/PGD
Инструменты все есть, но лично я, для облегчения воссоздания сорцов использую так же любимую Netbeans IDE — очень сильно помогает своими подсказками, особенно когда классов много.
Спасибо за внимание!
Ссылки
UPD:
Извиняюсь, в offline версии Fernflower присутствует модуль переименований и уйма других штук — Readme
Источник: habr.com
10 лучших декомпиляторов java для реинжиниринга программ
Интернет
Автор Andrew Parish На чтение 5 мин Просмотров 207 Опубликовано 13.07.2022
Работа Java-декомпилятора по преобразованию .class типов файлов в исходный код Java. Проще говоря, мы можем сказать, что эти декомпиляторы помогают вам декомпилировать кодировку Java в читаемую форму. Это означает, что вы также можете декомпилировать файлы APK , поскольку инструмент Android программируется на Java.
Эти декомпиляторы помогут вам анализировать и исследовать код классов Java, таких как ArrayList, HashSet и HashMap. Итак, если вы ищете хорошие и полезные приложения-декомпиляторы, мы составили список лучших декомпиляторов для Java-программ.
10 лучших декомпиляторов Java
JDProject
Это автономный декомпилятор Java, который выделяется среди других подобных приложений. Этот инструмент помогает декомпилировать Java 5 или версии, выпущенные позже Java 5. Самой последней является Jave 8. Для каждого этапа есть отдельный модуль, и это один из лучших инструментов декомпилятора для Java. Некоторые из его модулей — JD Eclipse, который специально разработан для стадии eclipse в Java. Другой модуль — JD intellij, предназначенный для этапа Intellij IDEA.
CFR Decompiler
CFR означает Class File Reader. Этот java-декомпилятор написан на Java 6. Несмотря на то, что он работает на Java 6, он достаточно продвинут, чтобы поддерживать основные моменты Java 8. Лучшая часть этого декомпилятора заключается в том, что это декомпилятор с открытым исходным кодом и широкими возможностями настройки в соответствии с потребностями пользователя. Это приложение довольно эффективно и быстро в работе.
DJ Java Decompiler
Это приложение для Windows, которое может быть легко доступно на Windows, включая Windows 7, Windows 8, Windows 8.1, а также новейшую Windows 10. Нет необходимости в JVM (Java Virtual Machine). Сильной стороной этого инструмента является возможность одновременной декомпиляции нескольких Java-документов. С помощью этого приложения клиенты могут изменять и накапливать код Java.
Cavaj Java Decompiler
Если вы являетесь пользователем Windows, вам понравится эта программа, потому что это очень хорошая альтернатива в ваших руках для декомпиляции программ Java. Инструмент чрезвычайно прост и удобен в работе. Он способен декомпилировать все типы документов классов Java. Однако инструмент требует наличия функции пунктуации.
Если инструмент лучше всего подходит для Windows, он бесполезен для пользователей Mac и Linux, поскольку не поддерживается этими устройствами. Это очень полезный инструмент для декомпиляции документов Java в нормальный исходный код, который можно бесплатно установить на любой ПК с Windows.
Procyon
Это приложение было создано одним из величайших разработчиков по имени Майк Стробел. Преимущество этого декомпилятора перед другими в том, что он может управлять обновлением Java Dialect с JDK 1.5 до всех предыдущих версий. Эта функциональность обычно отсутствует в других Java-декомпиляторах. Декомпилятор Procyon поддерживает Java 8 Lambdas и раскрытие перечислений.
Интерфейс и другие детали этого декомпилятора хороши. Procyon является более новым, чем JDProject, однако он составляет хорошую конкуренцию другим приложениям такого рода.
AndroChef
Это снова программа для Windows для декомпиляции Java проектов. Используя этот инструмент, вы можете успешно декомпилировать Apks, код класса Java и dex. Программа очень проста и удобна в использовании. Она бесплатна и имеет все основные функции, которые требуются в инструменте декомпилятора для Java. Она поддерживает Windows XP, Windows 2003, Vist, 7, Windows 8, 8.1 и последнюю из всех Windows 10 совместима с AndroChef.
Будь то Java 6 или Java 7, AndroChef может сделать это для вас. Этот декомпилятор также хорошо работает с Java 8, .Container , .Class documents.
YouTube video: 10 лучших декомпиляторов java для реинжиниринга программ
JBVD Java Decompiler
Это мощный декомпилятор, который может использоваться профессионалами. Большинство профессиональных джавасистов используют этот инструмент в качестве библиотеки с открытым исходным кодом для декодирования Java-документов. Он лучше всего подходит для Windows и может быть легко загружен из веб-источников.
Инструмент отлично работает для преобразования любого файла .class в java-документ. Однако единственное условие — на вашем устройстве Windows должна быть установлена Java. Использование инструмента настолько приятно, что преобразование файлов займет не более минуты.
Fernflower Java Decompiler
Еще один аналитический инструмент для декомпиляции java-документов — Fernflower. Этот инструмент, однако, все еще находится на пути к званию лучшего, но он предлагает легкие решения проблем, связанных с декомпиляцией Java. Хорошая вещь в этом настольном приложении — оно автоматически переименовывает непонятные символы и собирает их все в файл формата JAR. Это библиотека Java с открытым исходным кодом.
Enigma Java Decompiler
Этот инструмент в основном используется для деобфускации Java. Для деобфускации моделей Minecraft этот инструмент использует Procyon. Этот инструмент используется в области моддинга в самой популярной игре Minecraft, которая написана на языке Java.
Konloch’s Bytecode Viewer
Этот инструмент является полностью открытой программой. На данный момент инструмент не завершен и все еще находится в стадии разработки. Этот инструмент использует помощь других приложений, таких как Procyon и Fernflower. Таким образом, в целом можно сказать, что этот инструмент не работает самостоятельно, но он работает в координации с этими приложениями, что делает общую задачу декомпиляции Java просто превосходной.
Вывод
Итак, это были некоторые из наиболее используемых и предпочитаемых декомпиляторов Jave, которые вы можете использовать для упрощения своей работы. В интернете можно найти множество вариантов, но приведенный выше список отсортирован после анализа всех значимых и важных аспектов приложения. Мы уверены, что вы найдете их полезными. Кроме того, некоторые из вышеупомянутых инструментов являются просто программами просмотра. Это позволяет использовать такие приложения даже без установленной в системе Java.
Многие из рассмотренных выше приложений имеют открытый исходный код, что очень помогает в настройке. Для Windows существует множество приложений, которые могут послужить вашей цели. Вы можете легко скачать их, посетив их официальные сайты, и попробовать использовать их.
Источник: win-info.ru