[发明专利]符号执行的并行路径搜索方法及装置有效
申请号: | 201711423532.6 | 申请日: | 2017-12-25 |
公开(公告)号: | CN108021507B | 公开(公告)日: | 2020-07-28 |
发明(设计)人: | 衷璐洁;黄晓 | 申请(专利权)人: | 首都师范大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 宋扬;刘芳 |
地址: | 100048*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 符号 执行 并行 路径 搜索 方法 装置 | ||
1.一种符号执行的并行路径搜索方法,其特征在于,包括:
对获取程序的控制流图进行规约处理,获得所述控制流图的路径二叉树;
选取所述路径二叉树中的任意一路径,并获得所述路径对应的约束条件的真值序列;
沿对所述真值序列中的各约束真值逆序取反,获得多个路径前缀;
根据所述路径二叉树确定每个路径前缀对应的多个预测路径,为每个路径前缀分配一个线程,以使对所述多个预测路径同时进行路径搜索;
其中,所述逆序取反是指以逆序的顺序分别对真值序列中的各约束真值进行取反操作。
2.根据权利要求1所述的符号执行的并行路径搜索方法,其特征在于,所述对所述多个预测路径同时进行路径搜索之后,还包括:
判断全部的预测路径的数量是否大于预设阈值;
若否,则将所述全部的预测路径作为路径前缀,并返回所述根据所述路径二叉树确定每个路径前缀对应的多个预测路径的步骤,直至所述全部的预测路径的数量大于预设阈值。
3.根据权利要求1所述的符号执行的并行路径搜索方法,其特征在于,所述根据所述路径二叉树确定每个路径前缀对应的多个预测路径,包括:
根据每个所述路径前缀和所述路径二叉树,获得每个所述路径前缀对应的完整路径;
按照预设规则对每个所述路径前缀对应的完整路径中的约束真值取反,获得所述每个路径前缀对应的多个预测路径。
4.根据权利要求3所述的符号执行的并行路径搜索方法,其特征在于,若任一路径前缀中包括P个结点,则所述任一路径前缀对应的完整路径包括P’个结点,其中所述P小于所述P’;
相应的,按照预设规则对任一路径前缀对应的完整路径中的约束真值取反,获得所述任一路径前缀对应的多个预测路径,包括:
对所述任一路径前缀对应的完整路径中的第P个结点至第P’-1个结点对应的约束真值依次取反,获得任一路径前缀对应的P’-P个预测路径。
5.根据权利要求1-4任一项所述的符号执行的并行路径搜索方法,其特征在于,所述对获取程序的控制流图进行规约处理,包括:
根据所述控制流图的程序结构,确定所述程序结构对应的规约类型,并按照与所述规约类型对应的规约算法对所述程序结构进行处理;其中所述规约类型包括单选择型、多选择型和循环型。
6.一种符号执行的并行路径搜索装置,其特征在于,包括:
规约处理模块,用于对获取程序的控制流图进行规约处理,获得所述控制流图的路径二叉树;
并行路径搜索模块,用于选取所述路径二叉树中的任意一路径,并获得所述路径对应的约束条件的真值序列;沿对所述真值序列中的各约束真值逆序取反,获得多个路径前缀;根据所述路径二叉树确定每个路径前缀对应的多个预测路径,为每个路径前缀分配一个线程,以使对所述多个预测路径同时进行路径搜索;
其中,所述逆序取反是指以逆序的顺序分别对真值序列中的各约束真值进行取反操作。
7.根据权利要求6所述的符号执行的并行路径搜索装置,其特征在于,所述并行路径搜索模块,具体用于:
判断全部的预测路径的数量是否大于预设阈值;
若否,则将所述全部的预测路径作为路径前缀,并返回所述根据所述路径二叉树确定每个路径前缀对应的多个预测路径的步骤,直至所述全部的预测路径的数量大于预设阈值。
8.根据权利要求6所述的符号执行的并行路径搜索装置,其特征在于,所述并行路径搜索模块,具体用于:
根据每个所述路径前缀和所述路径二叉树,获得每个所述路径前缀对应的完整路径;
按照预设规则对每个所述路径前缀对应的完整路径中的约束真值取反,获得所述每个路径前缀对应的多个预测路径。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711423532.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种以氟唑菌酰胺为主要成分的杀菌组合物
- 下一篇:温度传感器和洗衣机