接下来是 afl 的编译,分成两个部分 gcc 编译部分和 llvm 模式,首先来介绍 gcc 部分。 afl-gcc 1. 文件描述 afl-gcc是gcc的一个wrapper,能够实现对一些关键节点进行插桩,利用插桩代码来记录程序的执行路径等信息。该文件的主要作用是进行源码编译,并在编译前对输入的参数进行处理。 2. 文件架构 文件涉及的头文件...
inst_ratio代表插桩密度,密度越高插桩越多,对资源负担越大,当设置AFL_USE_ASAN或者AFL_USE_MSAN时,这个密度会被强制置为33左右。 接下来若just_version标志位未置位,进入add_instrumentation主逻辑 add_instrumentation函数(核心插桩函数) 检查文件权限 首先检查是否可以打开待插桩文件,以及确定可以将已插桩的文件写入目...