2016-05-15 65 views
0

我是模糊测试工具的新手,基本上,我想使用模糊测试工具来测试特定的功能。模糊工具:预定义范围内的整数变量?

实质上,该函数有三个输入参数,每个参数都是一个数字,范围为0到0xffff

我想使用模糊工具来生成随机输入组合,并测试目标函数。然而,我试图zzuf,但发现它没有一个特定的设置上突变整数值。

所以我正在寻找一个模糊器,支持只改变整数值,在预定义的范围内?任何人都可以在这个问题上给我一些帮助吗?我清楚了吗?谢谢。

回答

2

这可以用许多工具完成,其中包括Kitty(由我的团队开发)。

假设你想生成与十进制表示数,下面的模板将生成它们(值将是逗号分隔):

from kitty.model import * 
t = Template(name='function inputs', fields=[ 
    S32(name='p1', value=1, min_value=-500, max_value=1000, encoder=ENC_INT_DEC), 
    Static(','), 
    ForEach(name='p2', mutated_field='p1', 
      fields=S32(value=2, min_value=-3200, max_value=5098, encoder=ENC_INT_DEC)), 
    Static(','), 
    ForEach(name='p3', mutated_field='p2', 
      fields=S32(value=3, min_value=0, max_value=999, encoder=ENC_INT_DEC)) 
]) 

while t.mutate(): 
    print t.render().tobytes() 

一些示例结果:

-1,2,3 
129,1026,3 
129,130,3 
129,18,3 
129,-3200,3 
129,5098,3 
129,-3199,3 
129,5097,3 
129,-3198,3 
129,5096,3 
129,3,3 
129,1,3 
129,4,3 
129,0,3 
17,1026,3 
17,130,3 
17,18,3 
17,-3200,3 
17,5098,3 
17,-3199,3