fuzzer AFL 源码分析(四)-监控

f0cus77 / 2022-11-15

上一部分对afl如何实现反馈进行了较为详细的介绍,本文将对afl如何实现监控进行分析。监控是指afl能够成功运行目标程序、获取目标程序的反馈信息(运行状态)并判定此次运行是否有效(此次运行的样例是否增加了模糊测试的覆盖率、是否崩溃或超时),以更有效的指导下一次模糊测试及保存崩溃。

fuzzer AFL 源码分析(五)-变异

f0cus77 / 2022-11-02

前面几篇文章将afl的大部分内容都已经覆盖到了(编译、反馈到监控),最后一个部分主要讲afl是如何挑选样本并针对样本的数据进行变异的。通过之前的分析我们已经知道,编译的种子通过链表的形式形成种子队列,种子经过变异后如果能够触发目标程序新的行为,会作为新的种子队列存入到链表中。但是对于新一轮的模糊测试,挑选哪个种子进行变异以及如何变异尚未解决,本文主要阐述afl是如何挑选种子进行变异以及如何变异。

fuzzer AFL 源码分析(三)-反馈

f0cus77 / 2022-09-26

上一部分对afl-fuzz的总流程进行了概要性的阐述,接下来将会对关键的代码模块进行详细的分析。

先对afl-fuzz过程中反馈与监控机制的实现进行分析,反馈是指afl在对目标程序的模糊测试过程中,目标程序可以将本次运行过程中的状态反馈给afl。本文主要介绍该afl是如何具体实现分支信息的记录以及更高效的运行目标程序的。

fuzzer AFL 源码分析(二)-fuzz流程

f0cus77 / 2022-09-01

第一部分介绍了afl插桩编译的过程,思考了很久才定下第二部分写些什么。本来打算第二部分详细解释插桩部分和forkserver的代码的,但是感觉如果对afl-fuzz的整体流程没有大致掌握的话,直接去描述细节会让人不理解为什么afl这部分要这样去设计,因此决定在第二部分将afl-fuzz的主要流程(main)和部分不是关键代码的函数给说清楚,后续再逐步对关键代码模块进行详细分析,j继而实现对afl模糊测试的解析。

fuzzer AFL 源码分析(一)- 编译

f0cus77 / 2022-05-23

学习经典的fuzz框架AFL,通过源码的阅读学习fuzz,为以后针对特定目标进行模糊测试打下基础。

AFL的基础使用可以去看通过afl-training学习afl,具体的使用不再进行说明。

f0cus77

STILL YOUNG

随机分类

逻辑漏洞 文章:15 篇
渗透测试 文章:154 篇
软件安全 文章:17 篇
Python安全 文章:13 篇
区块链 文章:2 篇

最新评论

路人甲@@

https://github.com/ice-doom/CodeQLRule 代

S

shungli923

师傅,催更啊!!!

1

1ue1uekin8

6

素十八

F

f0zz

给大佬点赞