カスタムクラスローダーによって読み込まれたJavaクラスをリバースエンジニアリングしようとしています。Javaクラスオブジェクトをクラスファイルにシリアル化できますか?
私はバイナリの内容を保存しようとしましたが、後でデコンパイルしようとしましたが、デコンパイラは通常のJavaクラスではないと苦情を言いました。
実行時に私はクラスオブジェクトを持っています。 sun javaクラスと同じ規約に従うクラスファイルにシリアライズすることは可能ですか?
追加:代わりに、Javaクラスオブジェクトで動作できるデコンパイラAPIがありますか?
デコンパイラAPIはありませんが、バイトコードを取得できます。クラスオブジェクトを持っていれば、JVMバイトコードで処理されているだけです。バイトコード自体は「一般的に」使用できません。 – bestsss
私はあなたの質問を誤解しているかもしれませんが、クラスの「バイナリコンテンツ」を持っている場合は、低レベルの[Solum](https://github.com/TkTech/Solum)ライブラリがあなたを助けることができますより高いレベルの逆コンパイラが失敗します。 'solum.bytecode.Disassembler'を使って、有効なクラスを持たずに直接バイトコードを逆コンパイルすることができます。 – TkTech