0

次のような呼び出しを置き換える方法はありますか

Socket s = new Socket(Proxy.NO_PROXY);

Socket s = new Socket();

方法がわからないため、BCELを使用しています。InstructionList を変更する必要があることは理解していますが、それをスキャンする方法がわかりません。また、どのオペコードを探すべきかもわかりません。

4

1 に答える 1

0

AspectJまたは同様の高レベル ツールを使用すると、学習曲線が大幅に短くなる可能性があります。

低レベルのバイトコードの変更については、Java のオペコードを学習せずにはいられません。良い出発点はJVM 仕様です。また、BCEL は十分に文書化されていないため、低レベルの選択に柔軟に対応できる場合は、ASM フレームワークを使用することをお勧めします。これは、ASM を使用した単純なバイトコード変換の実装に関する対応するチュートリアルです。古い ASM バージョンに基づいていますが、考え方は同じです。

于 2012-06-01T19:36:42.840 に答える