American Fuzzy Lop是一个结合了极其简单但是有坚如磐石的工具指引的遗传算法的暴力fuzzer。它使用了一个边缘覆盖的修改的表单来轻易地pick up不易察觉的,局部尺度变化到程序控制流中。

简单来说,整个算法可以归纳为如下:

  1. 加载用户提供的初始测试用例到一个队列中,
  2. 从队列中取得下一个输入文件,
  3. 尝试裁剪测试用例的大小并降到最小,同时并不改变程序的衡量行为,
  4. 使用一个均衡的,并且对传统fuzzing策略研究透彻的变化来重复转变文件,
  5. 如果任意一个生成的转变导致了一个由一起记录的新的状态转换,增加转变的输出作为一个新的入口在队列中,
  6. 重复步骤2
被发现的测试用例同样需要周期地剔除来排除一部分测试用例,这些测试用例已经被新的,更高的覆盖率发现已经被淘汰;同时经历一些其它工具驱动的努力最小化步骤。
作为fuzzing过程的一个副产品,这个工具创建了一个小的,自包含的有意思的测试用例的文集。对一些人力或者资源密集的测试工作,这些集合是非常有用的。例如,对于浏览器的压力测试,办公应用,绘图套件或者闭源的工具。

American Fuzzy Lop(AFL)介绍相关推荐

  1. American Fuzzy Lop(AFL)的安装与简单使用

    American Fuzzy Lop 1.AFL安装与试用 AFL不支持在Windows下使用,所以安装在Linux下,我的是Ubuntu系统. 安装LLVM 和 CLANG $ sudo apt-g ...

  2. American Fuzzy Lop(AFL) Fuzz无源码程序

    Fuzz无源码程序 AFL依赖QEMU实现了这个功能,qemu是一个仿真器. 无源码测试FFmpeg,参考:https://blog.csdn.net/qq_36711003/article/deta ...

  3. AFL(american fuzzy lop)学习二

    AFL(american fuzzy lop)学习二 @sizaif @2022-04-10 设计思想 覆盖率计算 改进边缘覆盖: 向目标程序注入以下工具来捕获分支(边缘)覆盖率和分支命中计数 一条边 ...

  4. AFL(American Fuzzy Lop)源码详细解读(3)

    AFL(American Fuzzy Lop)源码详细解读(3) 本篇是关于主循环阶段的内容,整个AFL最核心的部分,篇幅较长.最后简述一下afl_fuzz整体流程. 多亏大佬们的文章,对读源码帮助很 ...

  5. AFL(American Fuzzy Lop)源码详细解读(2)

    AFL(American Fuzzy Lop)源码详细解读(2) 本篇是关于 dry run (空跑.演练) 阶段的内容,一直到主循环之前. 多亏大佬们的文章,对读源码帮助很大: https://et ...

  6. AFL(american fuzzy lop)学习三

    AFL(american fuzzy lop)学习三 @sizaif @2022-04-11 fork Server 为了提高性能,afl-fuzz 使用"fork server" ...

  7. AFL(american fuzzy lop)学习一

    AFL(american fuzzy lop)学习一 @sizaf AFL 的模糊方法 基于改进的边缘覆盖 插桩法引导的遗传算法 流程: 插桩 从源码编译程序时进行插桩,以记录代码覆盖率(Code C ...

  8. AFL——American Fuzzy Lop的基础使用

    AFL--American Fuzzy Lop的基础使用 因为某些奇怪的原因,我一个没搞过pwn的得来搞代码fuzz,只好学一下,顺便记一下. AFL的安装 在部分源有的情况下可以直接使用apt-ge ...

  9. AFL(American Fuzzy Lop)源码详细解读(1)

    AFL(American Fuzzy Lop)源码详细解读(1) 多亏大佬们的文章,对读源码帮助很大: https://eternalsakura13.com/2020/08/23/afl/ http ...

最新文章

  1. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...
  2. 从近年顶会论文看领域自适应(Domain Adaptation)最新研究进展
  3. swift:创建表格UITableView
  4. VC2008中处理CStatic控件的单击STN_CLICKED消息
  5. HDU3595_GG and MM
  6. 从酒店服务员到世界500强大数据工程师,月薪4K到年薪40W,我经历了什么?
  7. forum.php 下载,PHPWind Forums
  8. 高频电子线路实验 03 - | 环形混频与直接调频
  9. linux udhcpc指令,linux下udhcpc的使用
  10. 理解 asyncio 来构建高性能 Python 网络程序 - Ricequant米筐量化
  11. 计算机导论alu的全名,计算机导论试题1.doc
  12. Qt实现一个简单的编译器(软件生成器)
  13. c++动态规划法求解斐波那契数列
  14. 励志: 我们来看看那些优秀的人的眼界和思想
  15. OpenGL红宝书的部分学习记录
  16. 微信小程序本地图片安卓手机不显示而苹果手机显示问题
  17. mysql cast()与convert() 函数
  18. 100G 数据,只有 100M 内存,怎么排序?
  19. 【每日早报】2019/09/25
  20. 微信公众号掉粉的16种原因!

热门文章

  1. 我请ChatGPT帮我创建一些漫画,大家一起来看看
  2. 虚拟机静态ip配置及vi编辑器的使用
  3. 数智时代,大数据分析的几个核心概念
  4. http中get,post,body,query方法的用法以及区别
  5. html 实现二维效果图,25个很酷CSS3效果欣赏
  6. 西门子PLC1200博途V16程序画面例程,具体项目工艺为制药厂生物发酵系统,程序内有报警,模拟量标定处理,温度PID,称重仪表USS通讯和基本的各种数字量控制
  7. 【ADV】InterStellar
  8. 几行代码轻松搞定网页的简繁转换
  9. Linux之Rsync+inotify数据同步
  10. Linux命令之查看zip压缩包信息zipinfo