AFL

此文章主要是对AFL仓库中doc目录下的所有文档进行翻译。
本文全文参考了da1234cao师傅的Github仓库https://github.com/da1234cao/translation/tree/master/AFL 的相关内容,我对全文中机翻程度过高以致未正确表达原文语义、异译程度过高以致偏离原文语义、语句不通顺或不合语法的大量文本进行了修改,特此说明。以下文章中的“原译者”即代指da1234cao师傅。
在前两篇文章中,我分析了afl-gcc的相关处理逻辑。简单来说,afl-gcc会将必要的函数以及桩代码插入到我们的源汇编文件中,这样,经过编译的程序将会带有一些外来的函数。但是。这些函数到底是怎样生效的呢,在本篇文章中,我将对AFL的主逻辑,也就是afl-fuzz进行分析。
本文将接续第一篇文章,继续分析afl-gcc向程序中插入的关键代码。
此篇为sakuraのAFL源码全注释系列的第三篇。
此篇为sakuraのAFL源码全注释系列的第二篇。
本篇为sakuraのAFL源码全注释系列的第一篇。
虽然afl-fuzz的源码有8000+行,但是代码逻辑很清晰,注释也非常完整,结合着注释以及网上看到的其他资料,这里自己总结一下学习到的东西,也是一篇集他人之长的杂文。