Как редактировать в jd gui
Перейти к содержимому

Как редактировать в jd gui

  • автор:

Русские Блоги

Используйте jd-gui.exe, чтобы изменить класс в пакете jar и восстановить пакет jar

Шаг 1: Используйте jd-gui.exe, инструмент декомпиляции, чтобы сохранить .class, который нужно изменить, как .java (ctrl + s)

1. Откройте пакет с банкой

2. Откройте .class, который нужно изменить

3. Сохраните текущий открытый .class, строка меню File -> save или вы можете напрямую нажать Ctrl + S

4. Изменить .java .

5. Скомпилируйте .java, чтобы получить .class

6. Используя WinRAR, удалите исходный .class и добавьте новый .class. Это оно!

Как изменить уже скомпилированный файл .class без декомпиляции?

Я хочу изменить метод .class file. Я установил JD Eclipse Decompiler и открыл файл .class. Я добавил несколько кодов и сохранил файл .class. Но файл .class не меняется.

Я не знаю, как использовать декомпилятор. И если это возможно, как изменить файл .class без использования декомпилятора.

Я использую Ubuntu.

Вот мой декомпилированный код:

9 ответов

Вы можете выполнить следующие действия, чтобы изменить свой класс java:

  • Декомпилируйте файл .class, как вы это сделали, и сохраните его как .java
  • Создайте проект в Eclipse с этим java файлом, оригинальным JAR как библиотека, и все ее зависимости
  • Измените .java и скомпилируйте
  • Получить измененный файл .class и поместить его снова в оригинал JAR.

Используйте редактор байт-кода, например:

Будьте осторожны, потому что вам нужны очень хорошие знания из байт-кода Java.

Вы также можете изменить класс во время выполнения с отражением.

Я добавил несколько кодов и сохранил файл .class.

Что вы видите в JD EClipse Decompiler — декомпилированное представление байтового кода в файле .class. Несмотря на то, что вы меняете текст, он не будет влиять на код байта.

когда вы декомпилируете и изменяете код, который вы должны поместить в корневую папку вашего проекта eclipse, и проверьте свой класс в папке bin, которая находится на том же уровне, что и src. затем откройте оригинальную банку с помощью zip-инструмента (7zip для этого хорошо) и поместите модифицированный класс в тот же пакет внутри банки.

Используйте java assist библиотеку Java для управления байт-кодом Java (файл .class) приложения.

— > Spring, Hibernate, EJB, используя это для реализации прокси-сервера

— > мы можем байт-код манипулировать, чтобы выполнить некоторый программный анализ

— > мы можем использовать Javassist для реализации прозрачного кеша для возвращаемых значений метода, перехватывая все вызовы методов и делегируя только супер-реализацию при первом вызове.

Когда-нибудь нам нужно скомпилировать один файл из тысячи файлов, чтобы устранить проблему. В таком случае можно создать такую ​​же структуру папок, как путь к классу, декомпилировать файл в java или скопировать java файл из исходного кода. Внесите необходимые изменения, скомпилируйте один конкретный файл в класс со всеми зависимостями/классами на месте и, наконец, замените файл класса. Наконец, перезапустите контейнер. Когда война взорвана, файл не будет заменен.

Вы можете использовать любой декомпилятор для декомпиляции файла.

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

Ниже приведено то, что я сделал:

Извлечен файл класса из jar

Открыл его в декомпиляторе (я использую JD GUI, вы можете легко получить его из многих ресурсов в Интернете) Вы можете загрузить его из здесь

Фактически вы можете просматривать все файлы в банке с помощью JD GUI.

Насколько я смог узнать, нет простого способа сделать это. Самый простой способ — фактически не преобразовать файл класса в исполняемый файл, а обернуть исполняемый пусковой механизм вокруг файла класса. То есть, создайте исполняемый файл (возможно, исполняемый скриптовый файл на основе ОС), который просто вызывает класс Java через командную строку.

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

Вот как я нашел:

Вы можете изменить код при его декомпиляции, но его нужно перекомпилировать в файл class , код декомпилятора выводит java код, он должен быть перекомпилирован с тем же путём классов, что и исходный jar / class файл

Name already in use

JD-GUI, a standalone graphical utility that displays Java sources from CLASS files.

  • Java Decompiler projects home page: http://java-decompiler.github.io
  • JD-GUI source code: https://github.com/java-decompiler/jd-gui

JD-GUI is a standalone graphical utility that displays Java source codes of «.class» files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields.

How to build JD-GUI ?

  • «build/libs/jd-gui-x.y.z.jar»
  • «build/libs/jd-gui-x.y.z-min.jar»
  • «build/distributions/jd-gui-windows-x.y.z.zip»
  • «build/distributions/jd-gui-osx-x.y.z.tar»
  • «build/distributions/jd-gui-x.y.z.deb»
  • «build/distributions/jd-gui-x.y.z.rpm»

How to launch JD-GUI ?

  • Double-click on «jd-gui-x.y.z.jar»
  • Double-click on «jd-gui.exe» application from Windows
  • Double-click on «JD-GUI» application from Mac OSX
  • Execute «java -jar jd-gui-x.y.z.jar» or «java -classpath jd-gui-x.y.z.jar org.jd.gui.App»

How to use JD-GUI ?

  • Open a file with menu «File > Open File. «
  • Open recent files with menu «File > Recent Files»
  • Drag and drop files from your file explorer

How to extend JD-GUI ?

generate Idea Intellij project

generate Eclipse project

launch JD-GUI with your extensions

How to uninstall JD-GUI ?

  • Java: Delete «jd-gui-x.y.z.jar» and «jd-gui.cfg».
  • Mac OSX: Drag and drop «JD-GUI» application into the trash.
  • Windows: Delete «jd-gui.exe» and «jd-gui.cfg».

Released under the GNU GPL v3.

Did JD-GUI help you to solve a critical situation? Do you use JD-Eclipse daily? What about making a donation?

Footer

© 2023 GitHub, Inc.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

разобрать изменить и собрать

Месяцев 3 назад собрал приложение.никаких бд и ничего нет .чтото легкое .Проект сам утерян .теперь мне надо както сделать пару изменеий в проекте заменить текст и тд.Не знаю что делать ?можно ли как то декомпилоровать апк изменить данные и обратно компелировать ?

Очень нужна ваша помощ

для проведения таких действий вам потребуется:

  • dex2jar
  • Java Decompiler
  • ApkTool

Далее выполнить по следующим шагам:

  1. Качаем dex2jar и извлекаем в папку, например С:\Decompile .
  2. Качаем Java Decompiler (например JD-GUI) и извлекаем файлы для удобства в ту же папку, куда и dex2jar.
  3. Качаем apktool и apktool-install-windows-r04-brut1.tar.bz2 и извлекаем файлы уже в системную папку. По умолчанию C:\Windows . (Не забыть скачать второй архив)
  4. Берем нужный apk файл и кладем в папку с dex2jar и Java Decompiler.
  5. Открываем Командную строку (Обработчик команд Windows) в вышеупомянутой папке (В папке по пустому месте при зажатой кнопке Shift нажимаем правую кнопку мыши и выбираем Обработчик команд Windows).
  6. Вводим команду dex2jar <ваш apk файл> и если все прошло хорошо, в той же папке появится файл <название вашего файла>.apk.dex2jar.jar
  7. Запускаем jd-gui и открываем полученный на предыдущем шаге файл. (На Windows 7 открывать с правами администратора и с совместимостью Windows XP SP3)
  8. Выбираем пункт меню File-Save All Source s и сохраняем.
  9. Извлекаем полученный zip архив.
  10. Помещаем полученную папку в папку src (надо предварительно создать).(Что бы получилась примерно такая структура С:\Decompile\<название вашего файла>\src\com\android )
  11. Опять же в командной строке вводим команду apktool d <название вашего файла>.apk <название вашего файла> , где <название вашего файла>.apk -имя пакета, <название вашего файла>-папка для декомпиляции.

Если все хорошо, тогда в указанной папке будут исходники в двух форматах (java и smali), ресурсы и файлы AndroidManifest.xml , apktool.yml

Таким образом будут получены исходники. Правда после декомпиляции в коде есть, можно сказать, ошибки,например вместо true и false стоят 1 и 0 соответственно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *