工程開發
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 查看