bitcoin-core/qa-assets
GitHub: bitcoin-core/qa-assets
比特币核心质量保证模糊测试资产
Stars: 71 | Forks: 81
# qa 资产
用于质量保证的与 Bitcoin Core 相关的 blob。
## 模糊输入
`qa-assets/fuzz_corpora` 包含每个模糊目标的一个输入语料库(每个目标一个文件夹,命名与每个目标相同)。
### 贡献输入
*有关如何模糊 Bitcoin Core 的文档,请参阅 [fuzzing.md](https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md)。*
如果您想贡献模糊输入,请在提交拉取请求之前“合并”输入。您可以使用 libFuzzer 选项 `-set_cover_merge=1`(推荐与 `-use_value_profile=0` 一起使用)或模糊运行器的 `--m_dir` 选项:[`test_runner.py`](https://github.com/bitcoin/bitcoin/blob/master/test/fuzz/test_runner.py)。
请确保首先从远程获取最新的提交,以确保没有添加冗余的输入。
### 剪枝输入
*随着时间的推移,模糊引擎会减少输入(生成一个产生相同覆盖率统计信息的更小的输入),这导致我们的语料库积累了更大的非减少输入。
*代码更改可能导致输入失去其覆盖率。
为了避免语料库膨胀、过时的输入和潜在的 CI 超时,我们通常使用 `delete-nonreduced-fuzz-inputs` 脚本在分支点附近剪枝/最小化我们的语料库(推荐在新的虚拟机中运行,请参阅脚本中的文档)。该脚本通常运行两次以确保结果“某种程度上”可重复(例如 https://github.com/bitcoin-core/qa-assets/pull/119#issuecomment-1518019457)。
剪枝语料库后,覆盖率不应有任何下降。
### 从 oss-fuzz 拉取输入
使用 `download_oss_fuzz_inputs.py` 从 oss-fuzz 拉取模糊输入。
标签:API密钥检测, CI, DNS解析, fuzzing, libFuzzer, oss-fuzz, XML 请求, 代码优化, 代码审查, 代码贡献, 区块链, 安全开发, 安全意识, 安全测试, 安全漏洞, 安全社区, 安全防护, 开源框架, 开源项目, 性能测试, 持续集成, 攻击性安全, 比特币, 红队平台, 贡献者指南, 质量保证, 软件质量, 输入验证, 逆向工具, 通知系统