[发明专利]一种基于动态符号执行的软件缺陷检测方法有效

专利信息
申请号: 201610709221.5 申请日: 2016-08-23
公开(公告)号: CN106354630B 公开(公告)日: 2018-11-13
发明(设计)人: 郭文生;杨霞;汪勇;张少鑫;刘维飞;武琼;袁艺;杨姗;刘小平;包灵;廖士钞;杨拯 申请(专利权)人: 电子科技大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 电子科技大学专利中心 51203 代理人: 周刘英
地址: 611731 四川省成*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于动态符号执行的软件缺陷检测方法。其包括下列步骤:对待检测的软件的源程序中的变量添加符号化标识,然后对源程序进行编译处理得到底层虚拟机LLVM中间码;根据指令类型,对LLVM中间码进行分类插桩处理,插入符号执行和缺陷检测指令;将插桩处理后的LLVM中间码编译生成可执行文件;基于生成的可执行文件,进行动态符号执行与缺陷检测:基于动态符号执行对源程序的各个分支进行软件缺陷检测。本发明的实施,能全面地检测程序中各个分支中潜在的缺陷,且缺陷检测效率高。
搜索关键词: 一种 基于 动态 符号 执行 软件 缺陷 检测 方法
【主权项】:
1.一种基于动态符号执行的软件缺陷检测方法,其特征在于,包括下列步骤:步骤1:对待检测的软件的源程序中的变量添加符号化标识,然后对源程序进行编译处理得到底层虚拟机LLVM中间码;步骤2:根据指令类型,对LLVM中间码进行分类插桩处理,插入符号执行和缺陷检测指令;步骤3:将插桩处理后的LLVM中间码编译生成可执行文件;步骤4:基于生成的可执行文件,进行动态符号执行与缺陷检测:401:基于测试案例运行可执行文件,生成符号执行约束条件表达式集合,或符号执行约束条件表达式集合和缺陷检测条件表达式集合,其中测试案例的初始值为随机输入;若存在缺陷检测条件表达式集合,则将当前生成的符号执行约束条件表达式集合和缺陷检测条件表达式集合作为一个队列元素存入预设队列L中;402:判断所有生成的符号执行约束条件表达式是否均已取非,若是,则测试案例生成结束,并设置软件检测结束标识;否则,将其中一个符号执行约束条件表达式取非并通过第一约束求解器进行测试案例求解,若有解,则将当前求解结果作为测试案例并执行步骤401;若无解,则继续执行步骤402;403:判断队列L是否为空,若为空,则检测是否存在软件检测结束标识,若是,则结束软件缺陷检测;若否,则继续执行步骤403;若队列L不为空,则从队列L中取出一个队列元素A并执行步骤404,其中队列元素A包括符号执行约束条件表达式集合S和缺陷条件表达式集合R;步骤404:从集合R中取出一个未被求解的缺陷条件表达式r,将r与集合S合并得到新的条件表达式集合并通过第二约束求解器进行缺陷判定求解,若有解,则显示对应r的缺陷类型;若无解,则判断集合R是否为空,若是,则执行步骤403;否则,执行步骤404。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610709221.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top