我目前正在用 afl 对一些东西进行模糊测试,就像 vanilla afl 自然发生的那样,它会卡在某些地方,例如执行时存在非直观的输入依赖性。挑战是我们如何解决这个问题?好吧,我还注意到崩溃文件夹中的一些输入往往都来自相同的输入 ID,请注意此处的模式:
gdb) r out/crashes/
README.txt id:000007,sig:06,src:000002,op:flip1,pos:2555 id:000015,sig:06,src:000002,op:flip1,pos:37785
id:000000,sig:06,src:000000,op:flip4,pos:582 id:000008,sig:06,src:000002,op:flip1,pos:2555 id:000016,sig:06,src:000002,op:flip1,pos:37785
id:000001,sig:06,src:000000,op:int16,pos:581,val:be:+100 id:000009,sig:06,src:000002,op:flip1,pos:2556 id:000017,sig:11,src:000002,op:flip1,pos:37807
id:000002,sig:06,src:000002,op:flip1,pos:2552 id:000010,sig:06,src:000002,op:flip1,pos:2560 id:000018,sig:11,src:000002,op:flip1,pos:38444
id:000003,sig:06,src:000002,op:flip1,pos:2552 id:000011,sig:06,src:000002,op:flip1,pos:2560 id:000019,sig:06,src:000002,op:flip2,pos:2552
id:000004,sig:06,src:000002,op:flip1,pos:2553 id:000012,sig:06,src:000002,op:flip1,pos:2561 id:000020,sig:06,src:000002,op:flip2,pos:2554
id:000005,sig:06,src:000002,op:flip1,pos:2553 id:000013,sig:06,src:000002,op:flip1,pos:37785 id:000021,sig:11,src:000002,op:flip2,pos:2558
id:000006,sig:06,src:000002,op:flip1,pos:2554 id:000014,sig:11,src:000002,op:flip1,pos:37785
可以注意到,很多输入来自id:000002
(这通过输入 afaik 的 src:00002 部分显示)。
所以我的问题非常简单,我如何告诉 afl 优先考虑另一个输入作为“ src
”?