基于符号执行的C/C++代码静态分析技术研究

来源 :北京理工大学 | 被引量 : 0次 | 上传用户:lomina
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件技术的不断发展,软件的规模越来越大,复杂度越来越高,从而导致软件的安全性和可靠性越来越难以保障。其中,内存泄漏和数组越界是最容易引起严重安全性问题的软件缺陷之一。本文采用静态分析的方法来检测上述的软件缺陷,静态分析由于其“执行速度快、成本低、效率高”的特点,是目前研究最多的缺陷检测的技术。但是目前静态分析中对内存泄漏和数组越界等问题的相关研究中,误报率和漏报率较高。根据上述研究问题,本文主要的研究工作和创新点包括:(1)针对符号执行中循环引起的数组越界访问和路径爆炸问题,提出一种基于循环次数的循环迭代分析方法。该方法将循环迭代赋值转换为一阶差分方程,根据差分方程的解求解循环迭代次数,然后将循环转化为条件分支,解决符号执行中循环引起的路径爆炸问题。(2)针对目前的方法在内存泄漏缺陷检测时,只考虑了内存的释放状态导致内存泄漏缺陷检测误报和漏报率较高,并且没有考虑内存和数组越界访问问题,提出了一种上下文敏感的内存模拟方法。该方法对内存进行建模,模拟内存的状态和行为,并引入指针状态,通过指针状态、内存状态以及内存行为之间的变化,构建了内存状态转移图,根据状态之间的转移判断内存泄漏和数组越界故障是否存在。(3)针对上述两个创新点,实现了一个静态分析的原型系统。该系统采用符号执行和约束求解的方法,对C/C++代码进行内存泄漏和数组越界访问缺陷检测。在CWE,开源软件libxslt-1.1.20、openssh3.5p1、lhttpd0.1、bftpd1.0.24以及自组数据上,对本文所提出的静态分析方法分别进行了实验效果分析,实验结果表明,本文提出的方法对内存泄漏和数组越界的检测比现有的方法具有更高的准确率。
其他文献
在这个互联网技术飞速发展的时代,每一天都有新的变化。我国民营金融机构也有了转型的契机,得到国家的政策扶持,客户量也在不断增长。但同时也面临着法律制度不完善、监督管
通过对 5起特大瓦斯爆炸事故的原因分析 ,指出了在煤矿安全生产中存在的诸多问题 ,总结出了经验教训
二氧化碳作为自然工质替代CFCs和HCFCs一直是人们研究的热点。在汽车空调及热泵技术领域,二氧化碳跨临界循环系统的应用取得了很大的进展。本文针对微通道气体冷却器在二氧化
文章通过中德两国两个管理案例的分析 ,对两国企业文化进行了对比 ,列举了差异 ,从而得出企业战略管理离不开企业文化的支持
目的:建立柴胡桂姜颗粒中黄芩苷的含量测定方法。方法:采用高效液相色谱法,色谱柱为Agilent Extend ODS反相柱(4.6 mm×250 mm,5μm),流动相为甲醇-水-磷酸(45∶55∶0.2),流
恢复土地原有的对雨水吸收、储蓄、再利用能力,还原生态水系统的自我循环功能,是当今城市建设的重点研究内容。本文以天津大学北洋园校区为例,对"海绵城市"理论在校园景观规
<正> 青田石色彩丰富,五彩缤纷,花纹奇特,有夹板冻、夹板纹、封门三彩,金玉冻龙蛋等等,真是难以胜举。还有千姿百态无奇不有的奇石,可谓蜚声海内外。艺人获得俏色奇石,如获瑰
目前河南省物流产业的发展处于起步阶段。本文针对河南省物流业发展中存在的问题,从大力发展第三方物流、培育大型物流企业、规范化地发展现代物流、加快传统物流向现代物流
精细化管理是在对管理项目中的相关划分管理标准进一步规范化处理,将事物自然发展规律与后期管理相结合,实现项目运行管理的操作过程更加顺畅自然,环境工程的范围较广,形式多
著作权法领域对于深度链接行为属性的认定倾向于采取"服务器标准"而非"用户感知标准",由此深度链接不是提供作品的信息网络传播行为。以此为刑法解释原点,则搜索引擎深度链接