1、引子
程序分析是我们开发出高健壮、强安全软件必不可少的步骤。现在的大多数公司,都会在项目或版本发布时,用开源或自研的静态分析软件去扫描一次程序,用以发现平时没发现的bug。据统计,开发人员70%的时间都会用在debug上,所以有一款自动检查bug的工具就可以让程序员把时间花在更有意义的事情上。
这个系列是为了帮助初学者入门的,程序分析是比较抽象的,尤其是各种算法,如果只是学习课本知识的话,很难对算法本身有更深的理解。
现在市面上有很多关于Java的静态分析,比如soot,但是针对C的还是比较少,即使有,也是不成体系的,可能只是完成单个功能的模块。
SVF是一个专门用于C程序分析的框架,通过学习它的算法以及代码实现,能让我们对程序分析有更深刻的理解。
本人有幸成为SVF的MTA工具的开发者之一,并且得到SVF作者的同意,在这向大家讲解这样一款非常不错的C语言静态分析工具。
下面我们就开始SVF之旅吧。。
首先我用一句话概述SVF:
SVF 是一款具有高扩展性、低耦合的、基于value-flow的稀疏分析框架,用户可以利用SVF前端求解的变量points-to 信息来定制化自己的静态分析算法。
SVF的框架
SVF的大体框架包含:
-
<