Страницы

Поиск по вопросам

вторник, 27 ноября 2018 г.

Редактирование .class файлов

Есть JAR файл. Необходимо декомпилировать один из его классов, отредактировать одно значение и закомпилировать обратно.


Ответ

Если хотите сделать это одноразово, то попробуйте JAD. Но учтите, что декомпиляторы не всегда могут получить исходник из .class-файла. Предположим, вы сумели его декомпилировать верно. После этого, его надо собрать обратно. Чтобы это сделать, надо воспользоваться компилятором.
javac -cp исходный.jar:библиотеки.jar исправленный.класс.java
(если под виндой, то библиотеки надо разделять точкой с запятой вместо двоеточия)
Ну а потом запаковать с помощью утилиты jar или какого-нибудь winrar
Если JAD не выдаёт плохой исходник, то можно попробовать другие варианты декомпиляторов. В худшем случае, вам придётся после декомпиляции разбираться в байткоде и руками править неверно декомпилированный код.
UPD
Также есть возможность вскрыть .class-файл и править его с помощью Apache BCEL. С его помощь можно подгрузить класс, модифицировать его, а потом обратно записать. Правда Apache BCEL - программное средство, а не тула, так что вам придётся написать программу, которая бы патчила класс нужным образом.

Комментариев нет:

Отправить комментарий