工程開發
fuzzing-dictionary avatar

fuzzing-dictionary

透過提供領域特定的標記、魔術位元組和協議關鍵字,增強模糊測試器的效果,以深入解析器和格式處理器的程式碼覆蓋率。

簡介

fuzzing-dictionary 技能可協助安全工程師與開發者優化覆蓋率引導式的模糊測試活動。除了單純依賴隨機突變(這通常無法通過解析器或協定狀態機的初始驗證檢查)之外,此技能協助配置與注入有意義的資料,例如魔術數字、協定指令、關鍵字以及特定格式的標頭,進而將模糊測試器推向更深入且複雜的程式碼路徑。

它專為採用嚴格輸入格式的目標系統而設計,例如 JSON/XML 解析器、網路協定實作(如 HTTP、DNS)以及媒體檔案編解碼器。透過提供經過篩選的字典,您可以大幅提高生成的輸入通過完整性檢查的機率,並觸及隱藏在深層執行分支中的脆弱邏輯。

  • 支援針對解析器、網路協定及複雜檔案格式(PNG, PDF 等)進行精確的模糊測試。

  • 支援業界標準的模糊測試工具,包含 libFuzzer、AFL++ 以及 cargo-fuzz。

  • 提供從標頭檔案、二進位字串、說明頁面或透過 LLM 輔助生成字典內容的方法。

  • 包含字典維護的進階技巧,例如去重、針對二進位資料使用十六進位跳脫序列,以及最佳化字典大小(50-200 個條目)。

  • 示範如何利用 AFL++ 的 AUTODICTIONARY 功能,從二進位比較點自動提取字串。

  • 當覆蓋率早期陷入停滯,或目標程式碼針對關鍵字或魔術常數執行明確的字串比對時,請使用此技能。

  • 若為純演算法測試且格式結構並非主要限制時,則無需使用。

  • 輸入應為格式正確的文字檔案,包含引號字串,並支援註解以及用於二進位控制的十六進位跳脫序列。

  • 此技能提供常見模糊測試工作流程的實作 CLI 指令,確保能無縫整合至現有的 CI/CD 或研究流水線中。

  • 使用者應監控字典大小,因為過大的字典可能會拖慢模糊測試速度,並稀釋高價值標記的影響力。

倉庫統計

Star 數
4,857
Fork 數
421
Open Issue 數
29
主要語言
Python
預設分支
main
同步狀態
閒置
最近同步時間
2026年4月28日 下午01:20
在 GitHub 查看