三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Fuzzing 测试分层:解析函数、工具链与崩溃复现

Fuzzing 测试分层:解析函数、工具链与崩溃复现

Fuzzing 测试分层:解析函数、工具链与崩溃复现

解析函数单测通过,不代表 Fuzzing 工具链能稳定产出可复现样本。构建、输入调度、崩溃保存和复现要分层验证。

适用条件先说在前面

这里讨论的前提是能够控制和审计目标二进制、构建选项、输入语料和崩溃样本。若授权、数据来源或运行环境不同,应重新评估,不能直接照搬。

三层分别验证什么

  1. 解析函数单测覆盖空输入、截断长度、异常字段和拒绝条件,夹具使用最小字节串,不依赖 Fuzzing 运行时。
  2. 工具链集成测试固定目标二进制、插桩构建与初始语料,检查超时、中断、样本去重和崩溃文件保存是否符合约定。
  3. 完整链路在隔离环境中运行受控语料,再从保存的崩溃样本独立复现;构建信息或复现步骤缺失时,不把结果记为可确认缺陷。

测试层次要互相校验

单元测试能验证解析函数,却难以发现文件边界、权限或工具链组合的问题。用受控样本检查端到端输出,并覆盖无效格式、重复输入和中断恢复;任何会执行外部动作的测试都应在隔离环境中运行。

把构建信息、样本来源、复现条件和回归结果与本次范围一一对应。能对上,说明过程可追踪;对不上,就先补记录再扩大使用。

← 返回列表