[发明专利]一种基于数组信息引导的符号执行优化方法及装置在审
申请号: | 202011197076.X | 申请日: | 2020-10-30 |
公开(公告)号: | CN112231225A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 陈振邦;王戟;毛晓光;董威;文艳军;李姗姗;陈立前;尹良泽;帅子琦 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 胡君 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数组 信息 引导 符号 执行 优化 方法 装置 | ||
1.一种基于数组信息引导的符号执行优化方法,其特征在于,步骤包括:
S1.使用符号执行器对待测源程序进行符号执行,在符号执行过程中遍历各路径的中间码指令序列,收集各路径下数组变量的访问类型信息和路径约束;
S2.根据步骤S1收集到的访问类型信息设置所述符号执行器的内部字符数组读操作在源程序中数组访问类型里的偏移,得到偏移信息;
S3.求解路径约束时,所述符号执行器将收集到的所述访问类型信息以及偏移信息传递给约束求解器,所述约束求解器根据收集到的所述访问类型信息、偏移信息判断是否存在公理冗余,如果存在冗余则不生成对应部分的公理,再根据最终生成的公理进行约束求解。
2.根据权利要求1所述的基于数组信息引导的符号执行优化方法,其特征在于,所述步骤S1中,具体若当前指令是数组变量声明指令且声明中的数组变量为a、数组类型为T,则数组的访问类型大小为size(T),并将数组变量a和访问类型大小size(T)构成的数据对存入map中;若当前指令是类型转换指令且转换的数组变量为a、转换后的类型为T’,将map中数组的访问类型大小设置为min(size(T),size(T’)),其中size(T)为原数组变量的访问类型大小,size(T’)为转换指令转换后的类型的大小。
3.根据权利要求1所述的基于数组信息引导的符号执行优化方法,其特征在于,所述步骤S3中公理生成的步骤包括:
步骤301:获取数组约束中每个数组变量所涉及到的符号化数组读索引集合;
步骤302:遍历所述符号化数组读索引集合中的每一个符号索引,根据收集的所述访问类型信息以及偏移信息分别判断各符号索引与常量索引之间对应的字符数组读操作的偏移是否一致,如果不一致判定存在公理冗余,不进行公理生成,否则判定不存在公理冗余,生成对应的数组公理;
步骤303:根据得到的所述偏移信息判断所述符号化数组读索引集合中两两符号索引之间对应的字符数组读操作的偏移是否一致,如果不一致则判定存在公理冗余,不进行公理生成,否则判定不存在公理冗余,生成对应的数组公理。
4.根据权利要求3所述的基于数组信息引导的符号执行优化方法,其特征在于,所述步骤S302中判断是否存在公理冗余的步骤包括:使用所述常量索引对收集的所述访问类型信息进行模运算得到常量索引对应的字符数组读操作的偏移,以及根据所述偏移信息获得各符号索引对应的字符数组读操作的偏移,判断各所述符号索引对应的字符数组读操作的偏移与各所述常量索引对应的字符数组读操作的偏移与是否一致,如果不一致,则判定对应两个索引之间存在公理冗余,否则判断不存在公理冗余。
5.根据权利要求1~4中任意一项所述的基于数组信息引导的符号执行优化方法,其特征在于,所述步骤S3中生成公理时,还包括将由源程序中同一个数组访问类型的字符数组读操作所生成的公理进行合并的步骤。
6.根据权利要求5所述的基于数组信息引导的符号执行优化方法,其特征在于,将所述公理进行合并的具体步骤包括:扫描当前生成的所有公理,计算每条公理中两个索引项的基地址,如果存在两个目的公理中的两个索引项基地址都相同,则判定该两条目的公理是由源程序中同一个类型里的字符数组读操作所生成的公理,合并该两条目的公理,其中合并时使用两个索引项基地址的等价关系作为前件,各个公理后件的合取作为后件,最终生成合并公理。
7.根据权利要求1~4中任意一项所述的基于数组信息引导的符号执行优化方法,其特征在于,所述步骤S3中生成公理后,还包括根据与公理中索引变量相关联的变量的数量计算每个公理的优先级,设置多个优先级梯度,并按优先级从大到小的顺序依次加入公理,当每个优先级梯度的公理加入后再调用sat求解器进行求解。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011197076.X/1.html,转载请声明来源钻瓜专利网。
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置