18 个不稳定版本 (3 个重大更改)
0.4.2 | 2024年5月12日 |
---|---|
0.4.1 | 2024年4月30日 |
0.3.5 | 2024年4月29日 |
0.2.0 | 2024年4月23日 |
0.1.3 | 2024年1月23日 |
#141 in 测试
每月 69 次下载
4MB
2.5K SLoC
AFL Runner
AFL_Runner
是一款现代命令行工具,旨在简化高效的多核 AFLPlusPlus 活动的运行。默认配置基于官方文档中 使用多核 的部分。
入门 🚀
目前,此工具应适用于所有 *NIX 风格操作系统。
先决条件
- Rust (nightly) 工具链 🦀
- AFLPlusPlus
- pgrep
- TMUX 或 screen (可选)
安装
您可以自己编译 AFL_Runner
...
git clone https://github.com/0xricksanchez/AFL_Runner.git
cd AFL_Runner
cargo build --release
./target/release/aflr --help
...或者直接通过 crates.io 安装
cargo install afl_runner
aflr --help
功能 ✨
AFL_Runner
允许您设置最必要的 AFLPlusplus 标志,并模拟这些选项的 AFLPlusplus 语法
-
支持的 AFLPlusplus 标志
- 语料库目录
- 输出目录
- 字典文件
- 为所有实例自定义
afl-fuzz
二进制路径 - 为目标二进制文件提供参数(包括 @@)
- 生成运行命令的数量
- 支持 *SAN, CMPLOG, CMPCOV 二进制文件
-
其他功能
- 为所有运行器自动创建适当布局的
Tmux
或screen
选项 - 文本用户界面 (TUI)
- 通过
--config
提供配置文件,以便更容易地共享/存储每个项目的配置- 当未提供
--config
时,自动读取CWD
中名为aflr_cfg.toml
的配置
- 当未提供
- 为所有运行器自动创建适当布局的
注意:命令行提供的参数优先于任何配置文件选项。
不是什么? ❌
AFL_Runner
的目标是一个即插即用的解决方案,适用于在进行模糊测试活动时,只剩下运行多核设置的阶段。因此,这个工具不是(目前)以下方面的助手:
- 编译目标程序的不同版本
- 准备一个良好的初始种子语料库
- 提供合适的字典以提升代码覆盖率
- 调试模糊测试活动
路线图 🗺️
- 添加远程选项 🌐
- 与statsd的本地集成
- 添加更多配置选项
- 为其他选项添加更合理的默认值
- 允许在某些运行器上使用AFLPlusPlus的分支
使用示例 💡
以下是一个使用AFL_Runner
生成AFL++命令的示例
注意:提供*SAN、CMPLOG或CMPCOV二进制文件是可选的,如果省略,所有调用都将包含(强制性)已配置的目标。
展示 🎥
AFL_Runner
还包括一个终端用户界面(TUI),用于监控模糊测试活动的进度。以下演示可以在examples/
中找到,可以通过在项目的根目录中运行cargo make
进行本地构建。
示例使用不同的编译时配置,构建了libxml2的最新版本四次
- plain AFL++配置
- Address-Sanitizer (ASan)
- CMPCOV,以及
- CMPLOG。
之后,生成16个实例所需的必要命令,然后在专用的TMUX会话中执行。最后,由*AFL Runner*提供的自定义TUI在集中空间跟踪模糊测试活动的进度
注意:可以使用afl_runner tui <afl_output_dir>
将TUI用作afl-whatsup
的完全替代品!
贡献 🤝
欢迎贡献!请随时提交拉取请求或打开有关任何错误、功能请求或改进的问题。任何其他支持也欢迎:)
许可证 📜
本项目采用Apache许可证。有关详细信息,请参阅LICENSE文件。
🔼 返回顶部
依赖项
~11–39MB
~613K SLoC