用户名: 密码: 验证码:
基于语义分析的软件缺陷自动检测技术研究
详细信息    查看官网全文
摘要
符号执行是目前较为行之有效的软件缺陷自动检测方法,计算代价昂贵与程序执行路径爆炸是两个影响其性能的关键问题。本文提出了一种针对C语言程序内存访问缺陷的符号执行检测方法,该方法可通过自动化构造的测试用例发现程序内部的内存访问缺陷,如缓冲区溢出、跨界访问和指针异常等。使用符号跟踪缓冲区长度的方法,一方面减少了符号变量的数量,另一方面由此精确抽象C语言库中字符串操作函数的行为,解决了符号执行过程间函数调用的步进问题;使用动态切片的方法,裁减路径探索过程中的冗余路径,从而解决在程序内部路径搜索时发生的路径爆炸问题。经实验验证,本文提供的检测方法不但可行,而且验证代价较小,具有较强的实用性。
Symbol execution is a effective method for software defect detection. Expensive computational cost and program execution path explosion are the two key problems that affect the performance of symbol execution in software defect detection task. In this paper, a symbol execution detection method is proposed for C language program. Through the automated test cases, the proposed method can detect the memory defects, such as buffer overflow, cross-border access, pointer exception etc. Using the method of symbol tracking buffer length, on the one hand, reducing the number of symbolic variables. On the other hand, precisely abstract the action of the manipulation function in the C language library, and the stepping problem is solved. Using the dynamic slicing method, cut the redundant path in the path exploration process, solving the path explosion problem. Verified by experiments, the detection method presented in this paper is not only feasible, but also has low cost and strong practicability.
引文
[1]陈振邦,等.基于符号执行的C程序语义缺陷检测技术.国防科技大学,2016.
    [2]刘峻宇,等,基于符号执行的指挥信息系统软件缺陷检测技术.解放军电子工程学院702教研室,2014.
    [3]Daniel J.Mosley,Bruce A.Posey.软件测试自动化[M].邓波,黄丽娟,曹青春,等,译,北京:机械工业出版社,2006.
    [4]Paul C.Jorgensen.软件测试[M].韩柯,杜旭涛,译,北京:机械工业出版社,2009.
    [5]宫云战,等.软件缺陷模式与测试[M].北京:科学出版社,2011.

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700