“http://lcamtuf.coredump.cx/afl/” 是指向 “American Fuzzy Lop”(AFL)项目的官方网站。AFL 是一个以安全性为导向的模糊测试工具,它使用编译时的代码插桩和遗传算法来自动发现能够触发目标程序新内部状态的干净且有趣的测试用例。这显著提高了被测试代码的功能覆盖率。
以下是 AFL 的一些关键特点:
安全性导向:AFL 专注于帮助开发者发现软件中的安全问题。
编译时插桩:它采用一种新颖的编译时插桩技术来追踪程序的执行路径。
遗传算法:AFL 使用遗传算法来生成测试用例,这些测试用例能够触发新的内部状态。
实用性:AFL 设计实用,具有适度的性能开销,使用多种高效的模糊测试策略和最小化工作量技巧。
无需配置:与许多其他模糊测试工具不同,AFL 基本上不需要配置。
处理复杂用例:它可以无缝处理复杂的真实世界用例,例如常见的图像解析或文件压缩库。
社区分支:尽管 AFL 本身已经有几年没有更新,社区中存在一个名为 AFL++ 的更复杂的分支,该分支包含多种改进和附加功能。
发现漏洞:AFL 已经成功帮助发现了多个软件中的漏洞,包括但不限于 IJG jpeg、libjpeg-turbo、libpng、libtiff、PHP、Mozilla Firefox、Internet Explorer、Apple Safari、Adobe Flash、sqlite、OpenSSL 等。
跨平台:AFL 已确认可在 x86 Linux、OpenBSD、FreeBSD 和 NetBSD 上工作,支持 32 位和 64 位系统。它还应该可以在 MacOS X 和 Solaris 上工作,尽管有一些限制。
支持多种语言:AFL 支持用 C、C++ 或 Objective C 编写的程序,可以与 gcc 或 clang 编译器一起使用。
AFL 是软件开发和安全测试领域中一个重要的工具,尤其适用于希望提高软件质量、发现潜在安全漏洞的开发者和安全研究人员。