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, 基础设施安全, 并发测试, 插件, 无后门, 测试工具, 逆向工具