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绕过, 神经网络, 种子生成, 网络安全, 网络流量审计, 自动化代码审查, 自适应变异, 软件安全, 通知系统, 通知系统, 隐私保护