[发明专利]用于模糊测试的JSON变异方法在审
| 申请号: | 202310335990.3 | 申请日: | 2023-03-31 |
| 公开(公告)号: | CN116225962A | 公开(公告)日: | 2023-06-06 |
| 发明(设计)人: | 杨亮;罗旭;郭健 | 申请(专利权)人: | 四川邦辰信息科技有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/006 |
| 代理公司: | 北京天奇智新知识产权代理有限公司 11340 | 代理人: | 叶明博 |
| 地址: | 621050 四川省绵*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 模糊 测试 json 变异 方法 | ||
1.用于模糊测试的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放入种子池,并且根据分析结果更新属性选择策略和算法选择策略。
2.根据权利要求1所述的用于模糊测试的JSON变异方法,其特征在于,属性选择概率值初始化处理包括:
①、统计种子池中所有的种子属性,去重后得到序列Key={Key0,Key1,...Keyi,...,Keyn};
②、初始化一个序列P={P0,P1,...Pi,...,Pn},其中;属性选择概率值Pi代表属性选择概率值选中Keyi的概率;
算法选择概率值初始化处理包括:
(1)、遍历序列Key,根据属性值确定Keyi能使用的变异算法;
(2)、初始一个键值对KS集合,KS={Key0:{S01,S02,...S0a},Key1:{S11,S12,...S1b},...,Keyi:{Si1,Si2,...Sij},...,Keyn:{Sn1,Sn2,...Snm}},Sij表示为Keyi能使用的第j个变异算法;
(3)、初始化一个键值对KP集合,KP={Key0:{P01,P02,...P0a},Key1:{P11,P12,...P1b},...,Keyi:{Pi1,Pi2,...Pij},...,Keyn:{Pn1,Pn2,...Pnm}},算法选择概率值Pij表示为变异算法Sij被选择的概率。
3.根据权利要求2所述的用于模糊测试的JSON变异方法,其特征在于,在S3中包括:
S31、归一化序列P得到序列P'={P0',P1',...Pi',...,Pn'},表示为其中a为归一化偏移,取值a=0.001,i=0,1,...,n;
S32、对序列P'进行采样得到一个下标i,且i≤n;
S33、在序列Key中获取索引为i的Keyi作为变异属性KEY,并令P=P'。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川邦辰信息科技有限公司,未经四川邦辰信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310335990.3/1.html,转载请声明来源钻瓜专利网。





