Show HN: Autarkie – Instant Grammar Fuzzing Using Rust Macros
a year ago
- #Rust
- #Grammar
- #Fuzzing
- Autarkie是一个用Rust编写的原生语法模糊测试工具,灵感来自nautilus。
- 可作为arbitrary的直接替代品,实现真正的语法模糊测试。
- 支持AFL++和cargo-fuzz,适用于Rust和C/C++项目的模糊测试。
- 简单易用,抽象了复杂性,可轻松与其他模糊测试工具集成。
- 特性包括无需维护语法规则、全覆盖语法范围、可复用语料库。
- 能向其他模糊测试工具学习,并原生支持cmplog(已基本实现)。
- 两大核心场景:测试AFL++插桩的C/C++项目,以及使用cargo-fuzz的Rust项目。
- 示例:利用datafusion-sqlparser-rs的语法对sqlite3进行模糊测试,展示Autarkie的高效性。
- 示例:测试Rust编写的Solana的sbpf解释器,体现cargo-fuzz的集成优势。
- Autarkie处于测试阶段:要求类型必须拥有所有数据(无生命周期),仅支持nightly版Rust。
- 欢迎贡献代码、提出问题或反馈意见。