devdanzin/fusil_cereggii_plugin
GitHub: devdanzin/fusil_cereggii_plugin
为 fusil 模糊测试框架提供 cereggii 并发库专用插件,自动注入边界用例和高竞争场景以发现并发原语中的潜在缺陷。
Stars: 1 | Forks: 0
# Fusil Cereggii 插件
此插件为 [cereggii](https://github.com/dpdani/cereggii) 库提供专门的支持。
## 功能
- **Tricky Inputs**:为 cereggii 类型提供的全面边界情况对象集合:
- 具有边界值的 AtomicInt64
- 具有哈希冲突和恶意 key 的 AtomicDict
- 递归结构
- ThreadHandle 实例
- 奇怪的子类
- **Scenario Mode**:对 cereggii 的并发原语进行压力测试的高竞争场景
- **Argument Generators**:自动将 cereggii 特定的输入注入到生成的测试脚本中
## 安装
```
pip install -e .
```
## 使用方法
### 使用 Tricky Inputs 进行标准 API 测试
使用自动注入的 tricky 对象对 cereggii 的 API 进行测试:
```
fusil --modules=cereggii
```
插件将自动激活并注入 tricky 的 AtomicInt64、AtomicDict 及其他对象作为参数。
### 场景模式
运行高竞争并发场景:
```
fusil --modules=cereggii --fuzz-cereggii-scenarios
```
此模式运行专门的场景,例如:
- `scenario_numeric_hell`:使用边界值对原子操作进行压力测试
- `scenario_callback_hell`:使用恶意的 callable 测试 update 方法
- 以及更多...
## 架构
该插件遵循 fusil 插件 API:
```
fusil_cereggii_plugin/
├── __init__.py # Plugin registration
├── tricky_cereggii_aggregator.py # Aggregates all tricky modules
└── samples/ # Tricky object definitions
├── tricky_atomicint64.py
├── tricky_atomicdict.py
├── tricky_atomicint_scenarios.py
└── ...
```
## 开发
要修改 tricky 输入或场景,请编辑 `samples/` 中的文件。
聚合器将自动:
- 读取源代码以嵌入到生成的脚本中
- 为参数生成器提取对象名称
- 收集场景函数
标签:Python, 基础设施安全, 并发测试, 插件, 无后门, 测试工具, 逆向工具