[发明专利]用于模糊测试的JSON变异方法在审
| 申请号: | 202310335990.3 | 申请日: | 2023-03-31 |
| 公开(公告)号: | CN116225962A | 公开(公告)日: | 2023-06-06 |
| 发明(设计)人: | 杨亮;罗旭;郭健 | 申请(专利权)人: | 四川邦辰信息科技有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/006 |
| 代理公司: | 北京天奇智新知识产权代理有限公司 11340 | 代理人: | 叶明博 |
| 地址: | 621050 四川省绵*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 模糊 测试 json 变异 方法 | ||
本发明公开了用于模糊测试的JSON变异方法,涉及计算机技术领域,包括:S1属性选择概率值和算法选择概率值是否初始化,若均是,进S2,反之,初始化后进S2;S2种子池中选取种子A,并移除;S3选择A的变异属性KEY;S4、选择变异算法进行变异;S5形成种子B’;S6判断B’是否已存在缓存序列内,若是,返回S3;反之则B’加入缓存序列,进S7;S7将B’送入目标程序,收集目标程序被覆盖的总行数,设定上一次覆盖总行数;S8分析该次变异,得到分析结果;S9将B’或A放入种子池,更新属性选择策略和算法选择策略;采用以概率为引导的策略选择,并且在结果评估之后对属性选择策略和算法选择策略进行修正,排除了变异的过度随机性。
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于模糊测试的JSON变异方法。
背景技术
直译式脚本语言对象简谱(Java Script Object Notation,JSON)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,易于阅读和编写,同时也易于解析和生成,其简洁和清晰的层次结构使之成为理想的数据交换语言,有效地提升了数据交换过程中的数据传输效率。
在模糊测试系统里面,需要对JSON格式的文档进行变异生成新的文档来进行新一轮的测试,以命中目标程序的各个分支和覆盖路径,但传统的方法,变异效率低下,且变异文档质量不高。
发明内容
本发明的目的就在于为了解决上述问题设计了一种用于模糊测试的JSON变异方法。
本发明通过以下技术方案来实现上述目的:
用于模糊测试的JSON变异方法,包括:
S1、判断属性选择概率值和算法选择概率值是否进行初始化处理,若均是,则直接进入S2,反之,则属性选择概率值和算法选择概率值进行了初始化处理后再进入S2;
S2、在种子池中选取种子A,并将其从种子池中移除;
S3、根据属性选择概率值利用属性选择策略选择种子A的一个变异属性KEY;
S4、根据算法选择概率值利用算法选择策略选择一种变异算法,对变异属性KEY的属性值V进行变异处理,得到V’;
S5、复制种子A作为种子B,用V’替换种子B变异属性KEY的属性值V,形成新的种子B’;
S6、判断种子B’是否已存在缓存序列内,缓存序列为用于记录变异后的新种子的记录序列空间,若存在,则返回S3;反之则将种子B’加入缓存序列,并进入S7;
S7、将种子B’送入到目标程序进行执行,收集目标程序被覆盖的总行数hit,设定上一次覆盖总行数hit’;
S8、分析当前总行数hit和上一次总行数hit’,得到分析结果;
S9、根据分析结果将种子B’或种子A放入种子池,并且根据分析结果更新属性选择策略和算法选择策略。
本发明的有益效果在于:采用以概率为引导的策略选择,并且在结果评估之后对属性选择策略和算法选择策略进行修正,排除了变异的过度随机性;对变异结果进行缓存,有效地对变异结果进行去重;采用结果反馈更新机制,动态更新策略,使得变异朝着优秀方向进行,提升种子变异质量和提升种子的有效性;基于属性值的变异,变异后不破坏其结构,极大减少种子的无效性。
附图说明
图1是本发明用于模糊测试的JSON变异方法的流程图;
图2是本发明属性选择示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川邦辰信息科技有限公司,未经四川邦辰信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310335990.3/2.html,转载请声明来源钻瓜专利网。





