myroslav-abdeljawwad/smart-fuzz

GitHub: myroslav-abdeljawwad/smart-fuzz

基于 Rust 的 AI 指导模糊测试库,通过学习崩溃痕迹智能生成变异 payload,帮助开发者更快发现协议实现中的边界情况漏洞。

Stars: 0 | Forks: 0

# smart‑fuzz **AI 指导的模糊测试引擎,通过学习崩溃痕迹来生成更智能的 payload** ## 关于 由 **Myroslav Mokhammad Abdeljawwad** 构建旨在解决“猜测与尝试”式模糊测试这一长期存在的问题,*smart‑fuzz* 使用轻量级神经网络模型来分析崩溃痕迹并即时演变变异策略。结果是一个 Rust 库,您可以将其放入任何协议实现中,看着它学习如何比传统工具更快地触及边缘情况。 ## 功能 - **崩溃痕迹学习** – 从堆栈跟踪中提取信号以指导变异。 - **模块化引擎** – `engine::mutate`、`engine::analyze` 和协议数据包解析位于独立模块中。 - **零依赖 API** – 开箱即用,仅需 `serde` 用于配置和 `rand`。 - **通过 YAML 配置** – 从文件加载自定义数据包模式(参见 `examples/example_protocol.yaml`)。 - **Rust 2021** – 安全、快速且文档齐全(查看 `docs/api.md`)。 ## 安装 ``` cargo add smart-fuzz ``` 或者克隆仓库并在本地构建: ``` git clone https://github.com/yourname/smart-fuzz.git cd smart-fuzz cargo build --release ``` 该库已在 crates.io 上发布,因此将其添加为依赖项会自动拉取 `serde`、`rand` 和 `regex`。 ## 用法 ### 1. 加载协议定义 ``` use smart_fuzz::config::ProtocolConfig; use std::fs; let yaml = fs::read_to_string("examples/example_protocol.yaml").unwrap(); let cfg: ProtocolConfig = serde_yaml::from_str(&yaml).expect("Invalid YAML"); ``` ### 2. 创建引擎并运行模糊测试周期 ``` use smart_fuzz::engine::{Engine, EngineOptions}; let mut engine = Engine::new(cfg, EngineOptions::default()); for _ in 0..100 { let payload = engine.mutate(); // send `payload` to target, collect crash trace ... let trace = get_crash_trace(); // placeholder for your own collector engine.analyze(trace); } ``` ### 3. 检查最佳种子 ``` let best_seeds = engine.best_seeds(); println!("Top payloads: {:?}", best_seeds); ``` ## 许可证 MIT © 2024 Myroslav Mokhammad Abdeljawwad ### 另见 - [Building Reliable Software Systems: Lessons Learned from Engineering Culture in Germany](https://dev.to/myroslavmokhammadabd/building-reliable-software-systems-lessons-learned-from-engineering-culture-in-germany-50gd) – 启发本项目的那篇博文。
标签:AI, Apex, ASN解析, Crash Trace, Fuzzing, Payload生成, Rust, TLS抓取, 人工智能, 代码安全, 协议模糊测试, 变异测试, 可视化界面, 崩溃分析, 情报收集, 机器学习, 漏洞枚举, 漏洞研究, 瑞士军刀, 用户模式Hook绕过, 神经网络, 种子生成, 网络安全, 网络流量审计, 自动化代码审查, 自适应变异, 软件安全, 通知系统, 通知系统, 隐私保护