2016-05-15 1 views
0

Я новичок в fuzzing инструментах, и в основном, я хотел бы использовать fuzzing инструмент для проверки конкретной функции.Fuzzing tool: Mutate integer в пределах предопределенного диапазона?

По существу, эта функция имеет три входных параметра, и каждый параметр представляет собой число с диапазоном от 0 до 0xffff.

Я хотел бы использовать инструмент fuzzing для генерации случайных комбинаций ввода и проверки целевой функции. Тем не менее, я попробовал zzuf, но обнаружил, что у него нет определенного значения для значения целочисленного значения.

Итак, я ищу fuzzer, который поддерживает только изменение целочисленного значения в пределах заданного диапазона? Может ли кто-нибудь помочь мне в этом вопросе? Я достаточно ясно? Спасибо.

ответ

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 
Смежные вопросы