[发明专利]一种基于数组信息引导的符号执行优化方法及装置在审
申请号: | 202011197076.X | 申请日: | 2020-10-30 |
公开(公告)号: | CN112231225A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 陈振邦;王戟;毛晓光;董威;文艳军;李姗姗;陈立前;尹良泽;帅子琦 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 胡君 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数组 信息 引导 符号 执行 优化 方法 装置 | ||
本发明公开一种基于数组信息引导的符号执行优化方法及装置,该方法步骤包括:S1.对待测源程序的中间码进行符号执行,在符号执行过程中遍历各路径的中间码指令序列,收集各路径下数组变量的访问类型信息和路径约束;S2.根据收集到的访问类型信息设置符号执行器内部字符数组读操作在源程序中数组访问类型里的偏移;S3.求解路径约束时,符号执行器将收集到的访问类型信息以及偏移信息传递给约束求解器,约束求解器根据接收到的访问类型信息以及偏移信息判断是否存在公理冗余,如果存在冗余公理则不生成对应部分的公理,再根据最终生成的公理进行约束求解。本发明能够优化符号执行过程,避免约束求解时生成大量的冗余公理,提高符号执行效率。
技术领域
本发明涉及软件自动测试中的符号执行技术领域,尤其涉及一种基于数组信息引导的符号执行优化方法及装置。
背景技术
在软件开发流程中,测试是必不可少的一环。软件测试通过构造不同的测试用例来执行软件,期望尽早地发现软件中的漏洞。目前测试用例一般都是人工构造的,存在构造成本高、构造效率低的问题,难以达到理想的覆盖率。测试用例自动生成技术旨在通过软件手段实现测试用例的自动化生成,从而提高软件测试的效率。符号执行即是测试用例自动生成技术中的重要分支,可以有效生成高覆盖率的测试用例。
在符号执行过程中,程序的输入被符号化,符号执行器即是通过符号输入来执行程序,构建符号路径条件并转换成路径约束加以求解,从而得到新的测试用例。在上述过程中,约束求解的作用至关重要,但也成为符号执行最主要的性能瓶颈。一方面,程序中路径数目繁多,符号执行器需要生成大量路径约束等待求解;另一方面,程序中存在一些复杂的数据结构,对这些数据结构进行建模会导致生成复杂的路径约束,数组就是其中的典型,许多流行的数据结构本质上也都是数组,如向量、字符串和哈希表等。因此,对使用了这些数据结构的程序做符号执行时,符号执行器会生成大量难以求解的数组约束,导致测试用例的生成效率十分低下。
为解决上述问题,目前一种有效的解决方案是采用基于反例引导的抽象精化数组约束求解方法(CEGAR方法),该类方法的基本思路是在求解时先对原始的数组约束做抽象,即消除原始数组约束中的read项和write项,再通过向抽象约束中逐步加入数组公理来精化抽象约束并求解,数组公理即数组读索引与数组元素之间两两形成的蕴含关系;当所有数组公理都添加完毕时,抽象约束的可满足性就和原始数组约束的可满足性完全一致。上述方法期望通过加入部分数组公理就得到最终的解,从而实现加速数组约束求解的目的,但是在应用于符号执行的场景下,该CEGAR方法有时并不高效。为了支持位操作,目前符号执行器通常是以字节为基本单位对数组进行建模,忽视了数组的类型信息,也就是说,不管源程序中的数组是何种类型,符号执行器里都是以字节数组的形式表示,传递到底层求解器中的数组约束也是基于字节数组的形式,因而在符号执行过程中使用上述CEGAR方法时,会导致CEGAR方法生成的数组公理存在大量冗余,使用这些冗余的数组公理来做精化,不但不能提前找到最终的解,反而会引入不必要的求解器调用,致使仍然无法高效地完成符号执行。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种基于数组信息引导的符号执行优化方法及装置,能够优化符号执行过程,避免约束求解时生成大量的冗余公理,提高符号执行效率。
为解决上述技术问题,本发明提出的技术方案为:
一种基于数组信息引导的符号执行优化方法,步骤包括:
S1.使用符号执行器对待测源程序进行符号执行,在符号执行过程中遍历各路径的中间码指令序列,收集各路径下数组变量的访问类型信息和路径约束;
S2.根据步骤S1收集到的访问类型信息设置所述符号执行器的内部字符数组读操作在源程序中数组访问类型里的偏移,得到偏移信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011197076.X/2.html,转载请声明来源钻瓜专利网。
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置