5.2. AFL

5.2.1. 简介

AFL(American Fuzzy Lop)是由安全研究员Michał Zalewski(@lcamtuf)开发的一款覆盖制导的模糊测试工具,它通过记录输入样本的代码覆盖率,从而调整输入样本以提高覆盖率,增加发现漏洞的概率。

其工作流程大致如下:

  • 从源码编译程序时进行插桩,以记录代码覆盖率

  • 选择一些输入文件,作为初始测试集加入输入队列

  • 将队列中的文件按一定的策略进行变异

  • 如果经过变异文件更新了覆盖范围,则将其保留添加到队列中

  • 上述过程会一直循环进行,期间触发了crash的文件会被记录下来

5.2.2. 参考链接