标签:AFL rated 覆盖率 top testcase fuzz fuzzer bits
AFL流程
AFL覆盖率的收集
fuzzer fork 父进程fuzzer 子进程forkserver(父子进程通过管道通信,一个传递状态,一个个传输控制命令),子进程初始化管道,并执行execve()目标程序。
target是将每个分支的执行次数用一个byte存储,而fuzzer则是进一步将这个执行次数归入不同的buckets中。 (count_class_lookup8[])
- virgin_bits[i]:记录整体的tuple信息(即边的信息)
- trace_bits[i]:记录当前输入的tuple信息
- trace_mini[i]:只记录覆盖信息,不记录边执行的次数
- top_rated[i]:数组中的每一个元素是一个queue_entry 类型的指针。top_rated数组的索引同样代表一条边,也就是说,top_rated数组的索引和trace_bits数组的索引所代表的含义是一致的。
一条边可能被多个testcase执行,而这些testcase的长度和运行时间基本是不同的。top_rated[index]表示在众多执行了edge-index的testcase中、长度运行时间最短的那个testcase(我们称这个testcase更favored的)。
标签:AFL,rated,覆盖率,top,testcase,fuzz,fuzzer,bits 来源: https://www.cnblogs.com/Ricardio/p/16264303.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。