[发明专利]符号执行的引导方法、装置、设备及计算机可读存储介质有效
申请号: | 201910639918.3 | 申请日: | 2019-07-16 |
公开(公告)号: | CN110457208B | 公开(公告)日: | 2023-01-06 |
发明(设计)人: | 冯倩;郭生健;李鹏;王明华;张玉龙;韦韬 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京鸿德海业知识产权代理有限公司 11412 | 代理人: | 田宏宾 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 符号 执行 引导 方法 装置 设备 计算机 可读 存储 介质 | ||
本申请提供一种符号执行的引导方法、装置、设备及计算机可读存储介质。本申请实施例通过确定程序的特定代码区域,进而,则可以利用程序逆向分析方法,获得所述程序的特定代码区域所对应的所述程序的程序循环输出,使得能够根据所述程序的程序循环输出,利用程序循环预测器,获得所述特定代码区域所对应的所述程序的程序循环输入,这样,可以利用所获得的所述特定代码区域所对应的所述程序的程序循环输入,引导符号执行过滤不可能的执行路径跳出程序循环到达所述特定代码区域,从而提高了符号执行的可靠性。
【技术领域】
本申请涉及软件测试技术,尤其涉及一种符号执行的引导方法、装置、设备及计算机可读存储介质。
【背景技术】
符号执行(Symbolic Execution)是一种程序分析技术,它可以通过分析程序来获得到达特定代码区域的程序输入。例如,在软件测试中,符号执行(symbolic execution)可以被用于生成可到达程序的漏洞点所在代码区域的程序输入。
然而,在一些情况下,例如,符号执行在处理程序中的程序循环时可能会存在路径爆炸(Path Explosion)的现象,使得符号执行无法跳出程序循环,从而无法生成可到达程序的特定代码区域的程序输入,从而导致了符号执行的可靠性的降低。
【发明内容】
本申请的多个方面提供一种符号执行的引导方法、装置、设备及计算机可读存储介质,用以提高符号执行的可靠性。
本申请的一方面,提供一种符号执行的引导方法,包括:
确定程序的特定代码区域;
利用程序逆向分析方法,获得所述程序的特定代码区域所对应的所述程序的程序循环输出;
根据所述程序的程序循环输出,利用程序循环预测器,获得所述特定代码区域所对应的所述程序的程序循环输入。
本申请的另一方面,提供一种符号执行的引导装置,包括:
确定单元,用于确定程序的特定代码区域;
执行单元,用于利用程序逆向分析方法,获得所述程序的特定代码区域所对应的所述程序的程序循环输出;
预测单元,用于根据所述程序的程序循环输出,利用程序循环预测器,获得所述特定代码区域所对应的所述程序的程序循环输入。
本申请的另一方面,提供一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述一方面所提供的符号执行的引导方法。
本申请的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述一方面所提供的符号执行的引导方法。
由上述技术方案可知,本申请实施例通过确定程序的特定代码区域,进而,则可以利用程序逆向分析方法,获得所述程序的特定代码区域所对应的所述程序的程序循环输出,使得能够根据所述程序的程序循环输出,利用程序循环预测器,获得所述特定代码区域所对应的所述程序的程序循环输入,这样,可以利用所获得的所述特定代码区域所对应的所述程序的程序循环输入,引导符号执行过滤不可能的执行路径跳出程序循环到达所述特定代码区域,从而提高了符号执行的可靠性。
另外,采用本申请所提供的技术方案,能够生成程序到达该程序的特定代码区域的有效的程序循环输入,从而有效提高了程序的测试效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910639918.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于机器学习模型的测试方法及相关设备
- 下一篇:用于调试应用的方法和系统