[发明专利]一种错误状态引导的符号执行方法在审
| 申请号: | 202310344595.1 | 申请日: | 2023-04-03 |
| 公开(公告)号: | CN116361182A | 公开(公告)日: | 2023-06-30 |
| 发明(设计)人: | 张智轶;苏瑞;周玉倩;黄志球 | 申请(专利权)人: | 南京航空航天大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41 |
| 代理公司: | 南京理工信达知识产权代理有限公司 32542 | 代理人: | 刘莎 |
| 地址: | 211106 江*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 错误 状态 引导 符号 执行 方法 | ||
1.一种错误状态引导的符号执行方法,其特征在于:该方法分为准备和符号执行两个阶段;其中,
(1)准备阶段具体包括:
步骤1.1:对待测试程序P进行约束插桩,获得修正后的程序P';
步骤1.2:对程序P'进行依赖分析,得到程序P'中错误行的全部静态依赖关系,并生成“result.txt”文档;
步骤1.3:初始化错误行的控制依赖表Control Dependency Table,所述控制依赖表Control Dependency Table由若干哈希表CtrlDep_map组成;
(2)符号执行阶段具体包括:
步骤2.1:使用栈Stack存储符号执行阶段若干待探索的任务,每个任务由一个二元组pcon,φ表示,其中pcon是一个用来指导探索特定的执行路径的约束条件组合,φ是用来避免探索重复路径的最后一个约束;
步骤2.2:迭代地从栈Stack中取出待探索的任务,进行路径探索和测试输入的生成,直至栈Stack为空,结束符号执行;
在每次迭代中,如果pcon是能够满足的,则使用约束求解器来生成该pcon对应的路径的测试输入,以求解约束;如果pcon是不能够满足的,则放弃对该pcon对应的路径的探索;
在每次迭代中,对于每条路径和其生成的测试输入,都需要判断:①当前探索的路径是否执行到程序P'的错误行,②生成的测试输入是否能够触发错误状态:如果①和②均为是,则符号执行提前结束;如果①和②中任一为否,则对当前探索的路径进行动态依赖分析,以获取错误行在当前探索的路径中的前驱间接控制依赖,并将其记录在Control DependencyTable中。
2.根据权利要求1所述的一种错误状态引导的符号执行方法,其特征在于:所述步骤1.1具体为:
首先,检测程序P中存在的错误语句E1以及E1所对应的正确语句E2;其次,计算E1!=E2,得到触发错误状态的约束AC;最后,在程序P中插入AC,生成修正后的程序P'。
3.根据权利要求1所述的一种错误状态引导的符号执行方法,其特征在于:所述步骤1.2具体为:
通过Indus程序间分析工具检索程序P'中错误行的控制依赖和数据依赖,并通过Indus提供的信息流分析程序P'中错误行的潜在依赖和交互依赖,得到程序P'中错误行的全部静态依赖关系,并生成“result.txt”文档。
4.根据权利要求1所述的一种错误状态引导的符号执行方法,其特征在于:所述符号执行阶段,在开始符号执行时,将true,true压入栈Stack中作为初始任务。
5.根据权利要求1所述的一种错误状态引导的符号执行方法,其特征在于:所述步骤1.3中初始化控制依赖表Control Dependency Table的具体步骤如下:
步骤1.3.1:从“result.txt”文档中检索错误行的全部控制依赖分支;
步骤1.3.2:依次判断步骤1.3.1中检索到的错误行的全部控制依赖分支的类型:
若检索到的错误行的控制依赖分支是条件分支,则将检索到的错误行的控制依赖分支加入到一个哈希表CtrlDep_map中,并更新对应的键和值;
若检索到的错误行的控制依赖分支是函数调用分支,则继续检索错误行的函数调用分支的控制依赖分支,直至检索到的错误行的函数调用分支的控制依赖分支是条件分支时停止,将检索到的错误行的控制依赖分支加入到哈希表CtrlDep_map中,并更新对应的键和值;
其中,每个哈希表CtrlDep_map的初始化键均为0,值均为TL,即:0,TL;更新时键的大小按照值的添加顺序依次增加。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310344595.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:无线供电装置及水轮发电机
- 下一篇:一种微机械陀螺仪及电子产品





