2016-05-15 66 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