使用flowdroid得到apk的调用关系图
问题描述
直接调用constructCallgraph()得到的调用关系图并不完整,以QKSMS代码为例。
TransactionService.java的部分源码如下所示

用flowdroid生成的调用关系图,其中onReceive()调用的函数输出如下:

从运行结果中可以看出得到的调用函数并不完整,getNetworkInfo()、isConnected()、getState()等均为出现。
解决
将soot-infoflow/src/soot/jimple/infoflow/InfoflowConfiguration.java中的第132行CallgraphAlgorithm的值更新为CallgraphAlgorithm.CHA,运行结果如下:


通过修改FlowDroid配置,将CallgraphAlgorithm设置为CHA,能获取到更完整的apk调用关系图。原始方法构造的调用图缺失如onReceive()调用的getNetworkInfo()、isConnected()、getState()等函数。
最低0.47元/天 解锁文章
3640

被折叠的 条评论
为什么被折叠?



