Rust 对 Syzkaller 的重新实现
syz-executor 二进制协议。它利用原始的 syzkaller 执行器来运行测试程序,同时在 Rust 中重新实现了扫描器调度逻辑。| 模块 | 责任 |
|---|---|
avoidance.rs |
持久化并重新加载学习到的超时避免状态(边界/系统调用失败计数) |
main.rs |
入口点:解析配置,启动管理器 |
manager.rs |
主循环:VM生命周期,FlatRPC握手,模糊循环 |
program.rs |
系统调用描述符( syzkaller 内部 ID),程序数据结构,随机文件名生成 |
exec.rs |
将程序序列化为执行器二进制格式(变长编码,与 encodingexec.go 兼容) |
fuzzer.rs |
程序生成(随机)和变异(插入/删除/修改调用,参数变异,拼接) |
corpus.rs |
语料库:跟踪发现的覆盖信号,存储产生新信号的程序,持久化并重新加载快照 |
crash.rs |
内核崩溃检测:识别 BUG/KASAN/KFENCE/崩溃模式,保存崩溃报告 |
protocol.rs |
FlatRPC 消息编码/解码(带大小前缀的 FlatBuffers) |
| `flatrpc_generated. |
暂无开放 Issues,或尚未同步最近议题。