fuzzing-obstacles

其他 社区
解读按原文结构重写,命令、链接、术语均保留;右侧可核对作者原始 SKILL.md

方法与流程

  • Step-by-Step:原文以此为独立章节。
  • Step 1: Identify the Obstacle:Run the fuzzer and analyze coverage to find code that's unreachable. Common patterns: Look for checksum/hash verification before deeper processing Check for calls to rand(), time(), or srand() with system seeds
  • Step 2: Add Conditional Compilation:Modify the obstacle to bypass it during fuzzing builds. C/C++ Example: Rust Example:

适用与边界

  • 当前原文没有单列适用场景。
  • Pattern: Bypass Checksum Validation:Use Case: Hash/checksum blocks all fuzzer progress Before: After:
  • Pattern: Careful Validation Skip:Use Case: Validation must be skipped but downstream code has assumptions Before (Dangerous): After (Safe):
  • Pattern: Bypass Complex Format Validation:Use Case: Multi-step validation makes valid input generation nearly impossible Rust Example: False positive risk: MEDIUM - Deserialization must handle malformed data gracefully

原文中的明确线索

  • 要点:「Checksums」、「Global state」、「Complex validation」、「Apply this technique when」、「Skip this technique when」、「Tools to help」、「C/C++ Example」、「Rust Example」
  • 文件与命令#ifdef FUZZINGBUILDMODEUNSAFEFORPRODUCTIONcfg!(fuzzing)#ifndef FUZZINGBUILDMODEUNSAFEFORPRODUCTION return -1; #endifif !cfg!(fuzzing) { return Err(...) }rand()time()srand()-fprofile-instr-generate

流狐整理:以上内容来自当前 SKILL.md 的章节与原词;未补写作者没有声明的工具、兼容性或能力。

流狐档案 作者与许可取自来源;运行、权限和网络为流狐检测或估算
流狐分类
通用
作者声明 Agent
未找到明确声明;不据此推断已兼容或已测试
静态检查
88 / 100 · 启发式扫描,不代表运行安全
作者 / 版本 / 许可
@trailofbits · 未声明 license
流狐 Token 估算
低消耗
流狐接入估算
需简单配置
是否需要外部 API Key
未发现要求
检测到的系统要求
未声明
底层运行要求
未声明
检测到的文件与系统行为
  • 只读
  • 允许写入 / 修改
  • Shell 执行
  • 读取环境变量
检测到的网络行为
仅限本地
安装命令数
无(仅作为资料)

档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

输出预览 fuzzing-obstacles.preview
# Real-World Examples

**OpenSSL:** Uses `FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION` to modify cryptographic algorithm behavior. For example, in [crypto/cmp/cmp_vfy.c](https://github.com/openssl/openssl/blob/afb19f07aecc84998eeea56c4d65f5e0499abb5a/crypto/cmp/cmp_vfy.c#L665-L678), certain signature checks are relaxed during fuzzing to allow deeper exploration of certificate validation logic. **ogg crate (Rust):** Uses `cfg!(fuzzing)` to [skip checksum verification](https://github.com/RustAudio/ogg/blob/5ee8316e6e907c24f6d7ec4b3a0ed6a6ce854cc1/src/reading.rs#L298-L300) during fuzzing. This allows the fuzzer to explore

讨论

基于 GitHub Discussions。登录 GitHub 即可参与讨论、点赞、订阅更新。