Страницы

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

среда, 25 декабря 2019 г.

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

#java #jar #декомпиляция


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


Ответы

Ответ 1



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

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

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