Sootを使用して、たとえば制御フロー グラフを含む Java プログラムの静的分析を行いたいと考えています。
さまざまなチュートリアルでは、Sootを使用する「標準的な方法」は、カスタム変換を Soot パイプラインに追加してからsoot.Main.main(...)を呼び出すmain メソッドを作成することであると述べています。
public static void main(String[] args) {
PackManager.v().getPack("jtp").add(
new Transform("jtp.gotoinstrumenter", GotoInstrumenter.v()));
soot.Main.main(args);
}
もちろん、コマンド ライン ツール以外で Soot を使用する場合、これにはいくつかの重大な制限があります。たとえば、プログラムで Soot の main メソッドを複数回呼び出すことが合法であるかどうかさえ、私にはわかりません。
では、もう少し洗練された API を介してすす分析ツールを直接使用する可能性を知っている人はいますか?