web-dev-qa-db-ja.com

命令を編集するJava classfile / bytecode editorはありますか?

編集用のユーティリティ(またはEclipseプラグイン)はありますかJava class files?バイトコードを操作したいJavaクラスファイルの再コンパイルや完全なビルドパスを使用せずに.

例:メソッドの名前変更、指示の追加/削除、定数の変更など

私が見つけた唯一のユーティリティは:

  • classeditor ですが、機能が非常に制限されています(たとえば、名前の変更や命令の操作はできません)。

  • jbe は変更を保存しません(クラスの検証が失敗したためか、変更を加える前に、クラスは完全に実行されますが)

    (jbeには最初にクラスパスの問題があり、jbe.batファイルにクラスパスを追加するのに役立ちました)

31
MRalwasser

バイトコード->バイトコードのフロントエンドは見たことがありませんが、バックエンドはたくさんあります。

javassist のような多くのバイトコード操作ライブラリを見て、バイトコードを読み込んで操作し、ディスクに保存してから、小さなコードを書き込むことをお勧めします。まさにそれを行うメイン。

クラスファイルを直接編集するために reJ を使用します。

命令、メソッド、定数プール、差分クラス、および16進エディターを使用した分割ビューを編集できます。

それは途方もなく素晴らしいです。

22
nahsra

私は オープンソースJavaアセンブラーと逆アセンブラー を作成しました。

クラスファイルを人間が読める形式のアセンブリに分解し、編集してから、クラスに再構築できます。もともと難読化されたクラックメムを作成するために設計されたため、他の多くのツールではサポートされていない多くの不明瞭な機能があります。現在サポートされていない機能が必要な場合は、お気軽にご連絡ください。できることを確認いたします。

7
Antimony

バイトコード操作/コード生成ライブラリのリスト this が役立つと思いますか?

2
Guy Sensei