工程开发
fuzzing-dictionary avatar

fuzzing-dictionary

通过提供领域特定令牌、魔术字节与协议关键字,引导模糊测试器深入挖掘代码路径,提升测试效率。

简介

fuzzing-dictionary 技能可协助安全工程师与开发人员,通过提供结构化的领域特定令牌(tokens)来优化模糊测试活动。盲目突变测试往往难以通过解析器、协议处理程序与复杂文件格式处理程序中的初始输入验证。本技能提供必要的配置与指引,用以注入具有意义的数据,让测试器能绕过浅层检查,并深入挖掘逻辑复杂且原本无法触及的代码路径。

  • 支持针对解析器(JSON、XML、配置文件)、网络协议(HTTP、DNS、自定义堆栈)以及多媒体转码器或文件格式(PNG、PDF)的精确模糊测试。

  • 支持业界标准模糊测试引擎,包含 libFuzzer、AFL++ 与 cargo-fuzz,确保在安全测试流程中具有高度兼容性。

  • 促进从多种来源提取字典内容,包含二进制字符串、头文件、在线说明文档(man pages)以及针对特定目标协议产生的 AI 建议内容。

  • 支持高级语法,例如用于非可打印字符的十六进制转义序列(如 \xF7\xF8)以及结构化的键值对注入,以模拟合法的数据格式。

  • 非常适合测试覆盖率在初期停滞,或目标代码会检查特定关键字或魔术字节(magic values)的情境。

  • 使用方式涉及建立一个聚焦的字典档(建议 50 至 200 个条目),并通过 -dict 或 -x 等标准旗标传递给模糊测试器。

  • 用户应专注于原子化、相关性高的令牌,而非大段文字内容,以最大化突变效率。

  • 本技能提供工作流程,可使用 grep 从项目专属头文件提取内容,或通过字符串分析从编译后的二进制文件生成字典。

  • 最佳实践包含使用 sort 工具进行去重、维护字典注释以维持可读性,并通过比较启用与停用令牌时的覆盖率指标来测试字典的有效性。请避免常见错误,例如包含过大的字典导致稀释模糊测试器的突变预算,或忽略处理二进制安全的十六进制转义序列。

仓库统计

Star 数
4,874
Fork 数
424
Open Issue 数
21
主要语言
Python
默认分支
main
同步状态
空闲
最近同步时间
2026年4月29日 07:37
在 GitHub 查看