如何找到访问 java API 的所有路径?

How can I find all paths to access an java API?

我正在分析一个 Android 应用程序,寻找安全漏洞。我已经用 JEB 反编译了 APK,我在其中发现了一个易受攻击的方法。

我的问题是:App逻辑太复杂,很难找到触发这个漏洞的方法。

我想知道是否存在一种工具可以找到代码中的所有 "paths" 以访问某些方法。

例如,对于下面的代码:

private void methodX() {
    // This is the method I want to call
}

private void methodA() {
    methodX();
}

private void methodB() {
    methodA();
}

private void methodC() {
    methodX();
}


访问methodX的路径是:

方法A( ) -> 方法X( )
方法 C( ) -> 方法 X( )
方法B( ) -> 方法A( ) -> 方法X( )


对了,我分析的时候用的是eclipse,可能上面有一些命令可以做这个,但是我还没找到。

在 methodX() 上按 Ctrl+Shift+G 会显示所有引用

在 Eclipse 中,Ctrl+Alt+H 将打开方法的调用层次结构,显示一个树视图,您可以展开该视图以查找对该方法的 "indirect" 引用。

这是一个跟踪来自 Spring MVC 的 DispatcherServlet 方法的示例: