0

わかりましたので、一般的な文字列の難読化解除ツールを作成しようとしています (単純なアセンブリ エクスプローラーで .NET が持っているものと同様です)

私がやりたいことは、BCEL を介してメソッドの命令を取得し、提供する引数を使用してそれらを実行し、そのメソッドの出力にアクセスすることです。既存のライブラリでこれを行うことは可能ですか? もしそうなら、私は助けを得ることができますか?

ありがとう

4

1 に答える 1

1

BCEL とリフレクション/呼び出しを組み合わせれば、この仕事を行うことができます。BCEL を使用してクラスとメソッドの名前 (あなたのLDCinvokestaticトリック、または類似のもの) を取得し、その直後にメソッドを呼び出します。「テストクラス」をクラスパスに配置すると、これを行うことができます。私にとって、バイトコードを実行する必要はありません。


クラスとメソッド名がある場合、次のようになります。

Class clazz = Class.forName(yourClassName);
// either (for public methods)
Method method = clazz.getMethod(yourMethodName);
// or for protected / private methods:
Method method = clazz.getDeclaredMethod(yourMethodName, yourArgumentTypes);
method.setAccessible(true); 

// assuming the method is static
Object result = method.invoke(null, yourMethodArgs);
// otherwise: pass a object reference instead of null
// to call the method "on" that object
于 2010-12-09T07:57:09.447 に答える