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