内容索引:
AFL(American Fuzzy Lop)是由安全研究员Michał Zalewski(@lcamtuf)开发的一款覆盖制导的模糊测试工具,它通过记录输入样本的代码覆盖率,从而调整输入样本以提高覆盖率,增加发现漏洞的概率。
其工作流程大致如下:
从源码编译程序时进行插桩,以记录代码覆盖率
选择一些输入文件,作为初始测试集加入输入队列
将队列中的文件按一定的策略进行变异
如果经过变异文件更新了覆盖范围,则将其保留添加到队列中
上述过程会一直循环进行,期间触发了crash的文件会被记录下来
american fuzzy lop