American Fuzzy Lop(AFL)介绍
2016-03-28 19:34
204 查看
American Fuzzy Lop是一个结合了极其简单但是有坚如磐石的工具指引的遗传算法的暴力fuzzer。它使用了一个边缘覆盖的修改的表单来轻易地pick up不易察觉的,局部尺度变化到程序控制流中。
简单来说,整个算法可以归纳为如下:
加载用户提供的初始测试用例到一个队列中,
从队列中取得下一个输入文件,
尝试裁剪测试用例的大小并降到最小,同时并不改变程序的衡量行为,
使用一个均衡的,并且对传统fuzzing策略研究透彻的变化来重复转变文件,
如果任意一个生成的转变导致了一个由一起记录的新的状态转换,增加转变的输出作为一个新的入口在队列中,
重复步骤2
被发现的测试用例同样需要周期地剔除来排除一部分测试用例,这些测试用例已经被新的,更高的覆盖率发现已经被淘汰;同时经历一些其它工具驱动的努力最小化步骤。
作为fuzzing过程的一个副产品,这个工具创建了一个小的,自包含的有意思的测试用例的文集。对一些人力或者资源密集的测试工作,这些集合是非常有用的。例如,对于浏览器的压力测试,办公应用,绘图套件或者闭源的工具。
简单来说,整个算法可以归纳为如下:
加载用户提供的初始测试用例到一个队列中,
从队列中取得下一个输入文件,
尝试裁剪测试用例的大小并降到最小,同时并不改变程序的衡量行为,
使用一个均衡的,并且对传统fuzzing策略研究透彻的变化来重复转变文件,
如果任意一个生成的转变导致了一个由一起记录的新的状态转换,增加转变的输出作为一个新的入口在队列中,
重复步骤2
被发现的测试用例同样需要周期地剔除来排除一部分测试用例,这些测试用例已经被新的,更高的覆盖率发现已经被淘汰;同时经历一些其它工具驱动的努力最小化步骤。
作为fuzzing过程的一个副产品,这个工具创建了一个小的,自包含的有意思的测试用例的文集。对一些人力或者资源密集的测试工作,这些集合是非常有用的。例如,对于浏览器的压力测试,办公应用,绘图套件或者闭源的工具。
相关文章推荐
- linux常用系统查看命令
- 硬盘安装系统(对部分linux有效)
- Linux学习-线程的创建和终止-(出现错误-undefined reference to 'pthread_create')
- 技术干货 | 初次微服务体验:从Docker容器农场说起
- Linux的inode的理解
- PHP在linux上执行外部命令(整理)
- OpenGL纹理映射--基础篇
- Linux下压缩某个文件夹(文件夹打包)
- LINUX下查看一个文件夹下所有文件的总大小
- 《Linux内核设计与实现》第十八章学习笔记
- SQUID反向代理
- SQUID透明代理服务器
- 别学框架,学架构
- Linux命令之查找
- SQUID传统正向代理
- __FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )
- Cocopods安装与使用,顺带出的几个问题提一下
- Linux命令之压缩解压缩
- CentOS设置开机自启动
- Linux命令之VIM编辑器