Есть ли редактор java classfile/bytecode для редактирования инструкций?

Есть ли утилита (или плагин eclipse) для редактирования файлов классов java? Я хотел бы манипулировать байт-кодом файла java-класса, не перекомпилируя его и не имея полного пути к созданию.

например. переименовывать методы, добавлять/удалять инструкции, изменять константы и т.д.

Единственные утилиты, которые я нашел:

  • classeditor но он очень ограничен по функциональности (, например, переименование вещей и манипулирование инструкциями невозможно).

  • jbe не сохраняет изменения (возможно, потому, что проверка класса не удалась - до того, как я внесла какие-либо изменения, хотя класс работает отлично)

    (jbe изначально имел проблему с классом, добавив путь к файлу jbe.bat)

Ответ 1

Я не видел ни одного байтового кода → байтовые коды кода, а множество бэкэндов.

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

Ответ 2

Я использую reJ для непосредственного редактирования файлов классов.

Он позволяет редактировать инструкции, методы, постоянный пул, классы diff и разделенное представление с шестнадцатеричным редактором.

Это смешно удивительно.

Ответ 3

Я написал ассемблер Java с открытым исходным кодом и dissasembler, которые могут вам пригодиться.

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

Ответ 4

Найти этот список библиотек манипуляции с байтовым кодом/библиотеки генерации кода полезен?