[发明专利]符号执行的引导方法、装置、设备及计算机可读存储介质有效
申请号: | 201910639918.3 | 申请日: | 2019-07-16 |
公开(公告)号: | CN110457208B | 公开(公告)日: | 2023-01-06 |
发明(设计)人: | 冯倩;郭生健;李鹏;王明华;张玉龙;韦韬 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京鸿德海业知识产权代理有限公司 11412 | 代理人: | 田宏宾 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 符号 执行 引导 方法 装置 设备 计算机 可读 存储 介质 | ||
1.一种符号执行的引导方法,其特征在于,包括:
确定程序的特定代码区域;
利用程序逆向分析方法,获得所述程序的特定代码区域所对应的所述程序的程序循环输出;
根据所述程序的程序循环输出,利用程序循环预测器,获得所述特定代码区域所对应的所述程序的程序循环输入;其中,
所述根据所述程序的程序循环输出,利用程序循环预测器,获得所述特定代码区域所对应的所述程序的程序循环输入之前,还包括:
利用抽象解释,获得所述程序的循环中第一次迭代操作之前的程序状态和每一次迭代操作之后的程序状态;
将每一次迭代操作之前的程序状态和该次迭代操作之后的程序状态,作为一条训练数据;
利用至少两条训练数据,构建基于循环神经网络RNN的所述程序循环预测器。
2.根据权利要求1所述的方法,其特征在于,所述确定程序的特定代码区域,包括:
利用抽象解释,确定所述程序的特定代码区域。
3.根据权利要求1所述的方法,其特征在于,所述程序的特定代码区域包括所述程序的漏洞点所在代码区域。
4.根据权利要求1~3任一权利要求所述的方法,其特征在于,所述利用至少两条训练数据,构建基于RNN的所述程序循环预测器,包括:
将所述至少两条训练数据中的程序状态进行向量化处理,以获得状态向量;
利用向量化处理之后的至少两条训练数据,构建基于RNN的所述程序循环预测器。
5.一种符号执行的引导装置,其特征在于,包括:
确定单元,用于确定程序的特定代码区域;
执行单元,用于利用程序逆向分析方法,获得所述程序的特定代码区域所对应的所述程序的程序循环输出;
预测单元,用于根据所述程序的程序循环输出,利用程序循环预测器,获得所述特定代码区域所对应的所述程序的程序循环输入;其中,
所述预测单元,还用于
利用抽象解释,获得所述程序的循环中第一次迭代操作之前的程序状态和每一次迭代操作之后的程序状态;
将每一次迭代操作之前的程序状态和该次迭代操作之后的程序状态,作为一条训练数据;以及
利用至少两条训练数据,构建基于循环神经网络RNN的所述程序循环预测器。
6.根据权利要求5所述的装置,其特征在于,所述确定单元,具体用于
利用抽象解释,确定所述程序的特定代码区域。
7.根据权利要求5所述的装置,其特征在于,所述程序的特定代码区域包括所述程序的漏洞点所在代码区域。
8.根据权利要求5~7任一权利要求所述的装置,其特征在于,所述预测单元,具体用于
将所述至少两条训练数据中的程序状态进行向量化处理,以获得状态向量;以及
利用向量化处理之后的至少两条训练数据,构建基于RNN的所述程序循环预测器。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1~4中任一权利要求所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~4中任一权利要求所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910639918.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于机器学习模型的测试方法及相关设备
- 下一篇:用于调试应用的方法和系统