FlowDroid——安卓应用程序的精准的内容、流、域,对象敏感以及生命周期感知的污点分析
摘 要
本文主要贡献:
- FlowDroid是第一个全内容、域、对象和流敏感的污点分析工具;
- 提供了一个开源的工具FlowDroid;
- 提供了一个开源的可供进行流分析的安卓应用程序数据集DroidBench;
- 对比AppScan、Fortify SCA工具,在DroidBench数据集上的准确率、召回率等指标表现都为最好。
一、准确的生命周期建模

二、准确的流敏感分析
污点分析:
对于赋值语句的污点转移函数规则定义如下:
- 如果赋值语句的右值为污点,那么他的左值也为污点。
- 如果赋值语句的右值为污点,左值是一个数组元素,那么整个数组也为污点。
- 如果讲新的值赋值给一个污点变量,那么这个变量的污点将被移除。
别名分析:
当一个污点值被赋值给一个堆位置(域或者数组),FlowDroid将反向寻找目标变量的别名并且污染他。
三、算法实现
