1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | coverage-analysis-trailofbits-skills |
| 作者/维护者 | Trail of Bits(官方安全研究团队) |
| 来源链接 | https://github.com/trailofbits/skills/tree/main/plugins/testing-handbook-skills/skills/coverage-analysis |
| 许可证 | CC-BY-SA-4.0(GitHub API,仓库级) |
| GitHub Stars | 6,418(仓库整体,GitHub API;合集仓库星数不代表本子技能个体热度,见第 6 章) |
| Forks | 555(GitHub API) |
| 最新版本 | 无正式 release 标签;本子技能所在路径最近一次提交 2026-06-05(GitHub API) |
| 安装方式 | /plugin install trailofbits/skills/plugins/testing-handbook-skills |
2. 功能介绍与亮点
coverage-analysis 是 Trail of Bits《Testing Handbook》模糊测试章节沉淀出的覆盖率分析方法论技能,解决“harness 写完了,但不知道它到底测到了多少代码”这一模糊测试中段常见的盲区:
- 多工具链覆盖:同时给出 LLVM/Clang(
-fprofile-instr-generate)、GCC(gcovr)、Rustcargo-fuzz三条独立的构建、执行、报告生成命令链,覆盖 C/C++/Rust 主流场景 - 诊断导向的工作流图:给出“覆盖率上升 → 扩大语料继续跑;覆盖率下降 → 排查 harness 或被测对象变化;覆盖率停滞 → 补字典或种子输入”的决策流程,把覆盖率数字转化为下一步行动
- 反模式对照表:列出 6 类常见错误(用不同 fuzzer 自带统计互相比较、开优化编译覆盖率构建、未过滤 harness 代码、混用 LLVM 与 GCC 插桩等)及各自的正确做法
- 按 fuzzer 工具分述:针对 libFuzzer、AFL++、cargo-fuzz、honggfuzz 四款工具分别给出覆盖率构建与执行差异点
- 故障排查表:8 类常见报错(如
no profile data available、覆盖率显示 0%)逐条给出原因与解决办法
3. 适用场景
所属分类:工程效率与代码质量(产出物是围绕“为代码编写并评估测试有效性”的具体工程实践,判定依据见第 7 章审计留痕)。
适用于已经在跑模糊测试、但需要判断 harness 是否真的测到了目标代码路径的安全工程师与开发者:新建模糊测试项目需要先建立覆盖率基线;harness 迭代后需要验证改动是否扩大了覆盖范围;模糊测试进入平台期,需要靠覆盖率报告定位需要补充字典或种子输入的具体代码块。
4. 跨 Agent 兼容性
- Claude Code:✅ 原生支持——以
.claude-plugin/plugin.json声明的插件形式安装,仓库文档明确面向该平台 - Codex:❓ 未验证——已抓取材料未点名提及
- OpenClaw:❓ 未验证——已抓取材料未点名提及
- Hermes Agent:❓ 未验证——已抓取材料未点名提及
5. 推荐理由
覆盖率是模糊测试里最容易被误用的指标——不同 fuzzer 自带的实时统计数字互相不可比、优化编译会让插桩失真、harness 自身代码不过滤会把噪音算进覆盖率。这个技能把这些误区显式列成反模式对照表,并为 C/C++(LLVM 与 GCC 两条路径)、Rust 三种工具链各给出一套可直接照抄的构建 - 执行 - 报告命令,还配了 8 类报错的排查表,能让工程师在覆盖率数字异常时快速定位是流程用错了还是 harness 真的有问题,而不是凭感觉调整。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 8 | 官方 Trail of Bits 出品;仓库整体 6,418 stars(合集仓库星数不计入个体评分);第三方渠道 skills.sh 上该子技能安装量约 4.1K |
| 可用性 | 9 | 一条命令安装插件;文档给出可直接复制运行的多工具链命令、决策流程图、反模式表与故障排查表,内容详实且可操作;仓库整体近一天内仍有提交,维护活跃 |
| 安全性 | 9 | 见下方安全检查清单 |
安全检查清单:
| 检查项 | 结果 |
|---|---|
| ① Shell 命令执行范围 | 内容为编译、覆盖率工具(llvm-cov/gcovr/cargo)命令示例,均为用户在自有开发/CI 环境中主动执行的标准构建流程,无隐藏的破坏性操作 |
| ② 运行时联网外发 | 纯本地方法论与命令参考,无网络外发行为 |
| ③ API Key/凭据 | 不涉及任何凭据或密钥 |
| ④ 可疑指令 | 未发现 prompt injection 或混淆代码迹象 |
| ⑤ 作者信誉 | Trail of Bits 为知名安全研究公司,官方仓库出品,无造假迹象 |
| ⑥ License | CC-BY-SA-4.0,明确 |
| ⑦ 最近维护 | 所在仓库最近一次提交为 2026-08-03,活跃维护中 |
7. 跟同类 Skills 相比的优势
| 项目 | 定位 | 与本技能的差异 |
|---|---|---|
| fuzzing-obstacles(同插件) | 针对“fuzzer 卡在某个具体障碍”这一单一子问题给出诊断与规避手法 | 聚焦单点故障排查,不覆盖覆盖率的构建、报告生成与跨工具链对比这一整套方法论 |
| cargo-fuzz(同插件) | Rust 生态 cargo-fuzz 工具本身的使用指南 | 仅覆盖 Rust 单一语言,coverage-analysis 额外覆盖 C/C++ 的 LLVM 与 GCC 两条独立路径,并给出跨语言通用的反模式与排查表 |
| llvm-cov / gcovr 官方文档 | 各自工具的权威命令参考 | 文档分散在两个独立项目里,需要工程师自行拼出“从构建到报告”的完整流程;本技能把两条工具链、常见错误与故障排查整合进同一份可执行手册 |
8. 用户评价
该技能目前在第三方平台尚无具名用户评价。
9. 其他补充
coverage-analysis 与同插件的 harness-writing(编写模糊测试 harness)、fuzzing-dictionary(补充字典条目)构成“写 harness → 测覆盖率 → 补字典”的连续工作流,三者搭配使用时收益最完整;单独使用本技能也可独立完成一轮覆盖率分析。
10. 安装使用方式
/plugin install trailofbits/skills/plugins/testing-handbook-skills
安装后无需重启,直接输入 /coverage-analysis 即可触发;技能会引导用户明确被测目标使用的语言与编译工具链(LLVM/GCC/Rust),给出对应的插桩构建命令、语料执行方式,以及报告生成与解读指引。
11. 注意事项
- 技能本身不安装 llvm-cov、gcovr、cargo-fuzz 等底层工具,需要用户在本地或 CI 环境自行准备好对应工具链;
- 内容聚焦 C/C++(LLVM/GCC)与 Rust(cargo-fuzz)三条路径,对 Python(Atheris)、Ruby(Ruzzy)等语言的覆盖率分析未做覆盖;
- 属于合集仓库
trailofbits/skills下testing-handbook-skills插件的 15 个子技能之一,安装插件会连带装入其余 14 个子技能。