American Fuzzy Lop + Dyninst:一种针对黑盒二进制的AFL模糊测试工具
1. 项目基础介绍与主要编程语言
项目名称:American Fuzzy Lop + Dyninst
项目简介:该项目是基于American Fuzzy Lop(AFL)和Dyninst的一个开源项目,旨在为黑盒二进制提供模糊测试功能。它通过在二进制文件中插入代码,监控程序的执行路径并触发潜在的漏洞。
主要编程语言:C++、Makefile、Shell
2. 项目核心功能
- ** instrumentation 工具**:该工具负责对输入的二进制文件进行 instrumentation,插入回调函数以监控基本块的执行。
- ** instrumentation 库**:提供了初始化回调函数和基本块回调函数,用于模拟 AFL 在编译时通过 afl-gcc/afl-g++/afl-as 所做的操作。
- 支持黑盒测试:即使没有源代码,也可以对二进制文件进行模糊测试。
- 灵活的命令行选项:提供了多种选项来定制 instrumentation 的行为,包括指定 entry point、跳过特定数量的基本块、设置最小基本块大小等。
- 修复 Dyninst 的 bug:针对 Dyninst 的某些问题进行了修复,减少了因 instrumentation 导致的崩溃和程序行为改变。
3. 项目最近更新的功能
最近的项目更新主要包括以下内容:
- 修复 Dyninst bug:更新了对 Dyninst 的修复,确保在 instrumentation 过程中不会因注册表问题导致崩溃。
- 改进基本块跳过选项:提供了更多的选项来跳过初始化例程的基本块,优化了程序运行速度。
- 增强命令行选项:增加了新的命令行选项,以提供更多的定制和优化可能性。
- 更新文档:改进了项目文档,提供了更详细的编译和运行说明,方便用户快速上手。
通过这些更新,项目不仅提高了稳定性,还增强了用户的定制性和易用性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考