如何找到访问 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
方法的示例:
我正在分析一个 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
方法的示例: