harness-writing

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

方法与流程

  • Step-by-Step:原文以此为独立章节。
  • Step 1: Identify Entry Points:Find functions in your codebase that: Accept external input (parsers, validators, protocol handlers) Parse complex data formats (JSON, XML, binary protocols)
  • Step 2: Write Minimal Harness:Start with the simplest possible harness that calls your target function: C/C++: Rust:

适用与边界

  • 当前原文没有单列适用场景。
  • Step 3: Add Input Validation:Reject inputs that are too small or too large to be meaningful: Rationale: The fuzzer generates random inputs of all sizes. Your harness must handle empty, tiny, huge, or malformed inputs without causing unexpected issues in the harness itself (crashes in the…
  • Practical Harness Rules:Follow these rules to ensure effective fuzzing harnesses: Rule · Rationale Handle all input sizes · Fuzzer generates empty, tiny, huge inputs—harness must handle gracefully
  • Anti-Patterns:Anti-Pattern · Problem · Correct Approach Global state without reset · Non-deterministic crashes · Reset all globals at start of harness Blocking I/O or network calls · Hangs fuzzer, wastes time · Mock I/O, use in-memory buffers

原文中的明确线索

  • 要点:「Harness」、「SUT」、「Entry point」、「FuzzedDataProvider」、「Determinism」、「Interleaved fuzzing」、「Apply this technique when」、「Skip this technique when」
  • 文件与命令LLVMFuzzerTestOneInputextern "C" int LLVMFuzzerTestOneInput(const uint8t data, sizet size)fuzztarget!(|data: &[u8]| { ... })if (size < MINSIZE) return 0;uint32t val = (uint32t)(data);FuzzedDataProvider fuzzeddata(data, size);auto val = fuzzeddata.ConsumeIntegral<uint32t>();auto str = fuzzeddata.ConsumeBytesWithTerminator<char>(32, 0xFF);

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

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

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

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

输出预览 harness-writing.preview
作者没有在当前 SKILL.md 中定义固定输出样例。

讨论

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