fandango-fuzzer/fandango
GitHub: fandango-fuzzer/fandango
一款结合文法规范与 Python 约束表达式的模糊测试工具,通过进化算法生成满足复杂语义约束的结构化测试输入。
Stars: 108 | Forks: 15
# 欢迎使用 Fandango!
[](https://pypi.org/project/fandango-fuzzer/) [](https://github.com/fandango-fuzzer/fandango/releases)
[](https://github.com/fandango-fuzzer/fandango/actions/workflows/python-tests.yml) [](https://github.com/fandango-fuzzer/fandango/actions/workflows/code-checks.yml) [](https://github.com/fandango-fuzzer/fandango/actions/workflows/github-code-scanning/codeql) [](https://pypi.org/project/fandango-fuzzer/) [](https://pepy.tech/projects/fandango-fuzzer) [](https://github.com/fandango-fuzzer/fandango/stargazers)
### ✨ 富有表现力且灵活的规范
Fandango 的规范语言结合了 **grammar** 与 **constraints written in Python**,使其具有极强的表现力。
* **自定义测试目标:** 精确定义您的需求。如果您需要输入具有特定值或遵循特定分布,可以直接在 Fandango 中开箱即用地表达这些测试目标。
### 🚀 多样的运行模式
Fandango 通过支持多种运行模式来适应您的工作流程:
* **黑盒 Fuzzing(默认):** 直接根据 `.fan` Fandango 规范文件生成输入。
* **输入变异:** 向 Fandango 提供样本输入,它将对其进行变异,以获取更复杂、更逼真的测试用例。
* **协议 Fuzzing:** 生成动态交互。Fandango 可以作为客户端或服务器,根据您的协议规范生成交互并对其做出反应。
### 🧠 内部原理
Fandango 是一个可移植的 Python 程序,这意味着它可以轻松地在多种平台上运行。为了生成输入,它利用了复杂的 **进化算法**。它从随机输入的种群开始,通过变异和交叉系统地进化它们,直到它们完美地满足您给定的约束条件。
### 🗺️ 2026 路线图
Fandango 正处于活跃开发中!我们正在不断扩展其功能。计划在 2026 年推出的功能包括:
* 覆盖率引导测试
* 代码导向测试
* 高多样性输入生成
* ...以及更多!
📚 **准备好深入了解了吗?** 如需完整的文档,包括教程、参考和高级使用指南,请访问 [Fandango 文档](https://fandango-fuzzer.github.io/)。
## 许可证
Fandango 根据欧盟公共许可证 V. 1.2 授权。有关详细信息,请参阅 [LICENSE](https://github.com/fandango-fuzzer/fandango/blob/main/LICENSE.md) 文件。
标签:DevSecOps, Fandango, Fuzzing, Python, TLS抓取, 上游代理, 协议模糊测试, 安全测试, 形式化规范, 攻击性安全, 文法, 无后门, 测试用例生成, 约束求解, 语法生成, 软件安全, 输入变异, 逆向工具, 黑盒测试