「オンザフライ」で生成されたバイトコードを検証しようとしています。
私はすでにいくつかの試みをしました。1つの試みはEclipseコンパイラを使用して実行時にクラスをコンパイルすることであり、もう1つはここで説明するようにメモリからコンパイルすることでした。
最初の結果は問題ないように見えましたが、JAVA 6のガイドラインとセキュリティ測定、および通常のOOPモデルに従って、検証プロセスが本当に有効かどうかはまだ100%わかりません。
バイトコードを検証するためのより良い方法はありますか?
「オンザフライ」で生成されたバイトコードを検証しようとしています。
私はすでにいくつかの試みをしました。1つの試みはEclipseコンパイラを使用して実行時にクラスをコンパイルすることであり、もう1つはここで説明するようにメモリからコンパイルすることでした。
最初の結果は問題ないように見えましたが、JAVA 6のガイドラインとセキュリティ測定、および通常のOOPモデルに従って、検証プロセスが本当に有効かどうかはまだ100%わかりません。
バイトコードを検証するためのより良い方法はありますか?
標準のクラスローダーを使用して生成されたバイトコードをロードする場合、JVMのバイトコードベリファイアはバイトコードを検証します(タイプチェックを確認し、メソッドの「エッジ」に落ちることはありません)。
ASMツールキットが提供するクラスベリファイアを使用できます。これは、JVMによってクラスを実際にロードする必要はなく、より詳細な検証エラーレポートを提供します。