Manul:一款强大的跨平台覆盖引导模糊测试工具
manul Manul is a coverage-guided parallel fuzzer for open-source and blackbox binaries on Windows, Linux and MacOS 项目地址: https://gitcode.com/gh_mirrors/man/manul
项目介绍
Manul 是一款基于 Python 编写的开源覆盖引导模糊测试工具,支持在 Windows、Linux 和 macOS(测试版)上对开源和黑盒二进制文件进行并行模糊测试。Manul 通过覆盖引导的方式,能够高效地发现目标程序中的漏洞,并已在多个知名软件中发现了多个 CVE 漏洞。
项目技术分析
Manul 的核心技术在于其覆盖引导模糊测试(Coverage-guided Fuzzing)能力。它支持两种类型的插桩方式:
- AFL 插桩模式:通过
afl-gcc
或afl-clang-fast
对目标程序进行插桩,并结合Address Sanitizer
以提高测试效果。 - DBI(动态二进制插桩)模式:无需对目标程序进行插桩,而是通过 DynamoRIO 框架对黑盒二进制文件进行模糊测试。Manul 还支持持久化内存模糊测试模式,进一步提升模糊测试的效率。
此外,Manul 还集成了
Radamsa
模糊测试工具,提供了多种模糊测试策略,并通过配置文件灵活调整测试参数。
项目及技术应用场景
Manul 适用于以下场景:
- 安全研究:用于发现和分析软件中的安全漏洞,特别是针对开源和黑盒二进制文件。
- 软件测试:在软件开发过程中,通过模糊测试发现潜在的错误和异常行为。
- 逆向工程:辅助分析和理解二进制文件的行为,特别是在缺乏源代码的情况下。
项目特点
- 跨平台支持:Manul 支持 Windows、Linux 和 macOS,适用于多种开发和测试环境。
- 覆盖引导:通过覆盖引导的方式,能够更高效地发现程序中的漏洞。
- 并行测试:支持多线程并行模糊测试,大幅提升测试效率。
- 灵活配置:通过配置文件和命令行参数,用户可以灵活调整模糊测试的策略和参数。
- 集成 Radamsa:集成了
Radamsa
模糊测试工具,提供多种模糊测试策略。 - 持久化内存模糊测试:支持持久化内存模糊测试模式,进一步提升模糊测试的效率。
快速开始
要开始使用 Manul,只需按照以下步骤操作:
- 安装依赖:
pip3 install psutil
- 克隆项目并初始化测试环境:
git clone https://github.com/mxmssh/manulcd manulmkdir inmkdir outecho "AAAAAA" > in/test
- 运行模糊测试:
python3 manul.py -i in -o out -n 4 "linux/test/test_afl @@"
对于 Linux 用户,还需要安装
Radamsa
:
sudo apt-get install gcc make git wget
git clone https://gitlab.com/akihe/radamsa.git && cd radamsa && make && sudo make install
结语
Manul 作为一款功能强大的覆盖引导模糊测试工具,不仅支持多种平台和插桩方式,还提供了灵活的配置选项,能够帮助用户高效地发现软件中的漏洞。无论你是安全研究人员、软件测试工程师,还是逆向工程师,Manul 都能为你提供强大的支持。赶快尝试一下吧!
manul Manul is a coverage-guided parallel fuzzer for open-source and blackbox binaries on Windows, Linux and MacOS 项目地址: https://gitcode.com/gh_mirrors/man/manul
版权归原作者 柯轶芊 所有, 如有侵权,请联系我们删除。