本项目研究针对C++程序的静态分析查错技术,静态分析是提高软件正确性和安全性的重要技术,其中符号执行是最为精确的一种静态分析技术。C++语言是工业界广泛使用的大型系统软件编程语言,既有与C语言同样的低级内存操作语义,又有面向对象的语言特征,是一种极为强大和复杂的语言。本项目力图将符号执行分析技术扩展到C++程序上,使其能够精确模拟C++语言的语义,建立新的内存模型和对象模型,支持C++中的继承,虚函数,临时对象,类型转换,构造析构函数,new/delete操作符,模板,函数重载等主要语言特征。在技术研究的基础上,开发一个产品级质量的C++静态分析工具,使其能够分析中等规模的真实的C++项目。研究将在一个已有的C语言静态分析工具和一个成熟的C++编译器前端基础上进行。
在本项目中,我们研制了针对C和C++语言的静态分析工具Canalyze. Canalyze的目标是自动检测C和C++代码中的缺陷。Canalyze通过对代码中的每一条路径进行符号模拟执行来分析代码。这样可以对代码中可能出现的各种状态进行系统化的探索。通过这样的方式发现了很多代码缺陷,例如在GDB, Coreutils, sed等广泛使用的开源程序中。Canalyze中设计并实现了一个强大的内存建模方法,使得工具能够对指针,数组元素,结构体域等语言特性进行精确的分析和推理。
{{i.achievement_title}}
数据更新时间:2023-05-31
基于LS-SVM香梨可溶性糖的近红外光谱快速检测
基于文献计量学和社会网络分析的国内高血压病中医学术团队研究
高分五号卫星多角度偏振相机最优化估计反演:角度依赖与后验误差分析
铁路大跨度简支钢桁梁桥车-桥耦合振动研究
基于暂态波形相关性的配电网故障定位方法
面向真实错误程序的高阶变异错误定位技术研究
面向软件静态检测缺陷的推荐与评估技术研究
面向动态Web应用的错误分析与定位技术研究
恶意软件静态分析与检测关键技术研究