工程開發
libafl avatar

libafl

一個基於 Rust 的模組化模糊測試函式庫,用於建立自訂模糊測試器、開發進階變異策略以及進行研究級的漏洞測試。

簡介

LibAFL 是一個精細且模組化的模糊測試框架,專為需要對模糊測試生命週期進行細粒度控制的安全研究人員與工程師而設計。與 libFuzzer 或 AFL++ 等通常作為黑箱運作的單體模糊測試器不同,LibAFL 提供了基於 Rust 的函式庫架構,允許使用者挑選並組合特定的元件(如變異器、回饋機制、觀察者和排程器),以構建客製化的模糊測試解決方案。這種靈活性使其非常適合處理非標準目標、實作新穎的演算法,或進行標準工具無法勝任的深層模糊測試研究。使用者可以將其作為現有 libFuzzer 測試工具的直接替代方案,或從零開始構建高度專業化且高效能的模糊測試引擎。

  • 模組化元件設計,允許自訂觀察者、回饋、目標、狀態、變異器和排程器。

  • 透過 libafl_libfuzzer_runtime 層,為現有的 libFuzzer 測試工具提供直接替換相容性。

  • 高效能執行引擎,支援多核心運作以及複雜的架構目標。

  • 面向研究的平台,用於原型設計新的變異策略和回饋驅動測試技術。

  • 原生 Rust 整合,確保模糊測試實作中的記憶體安全與並發支援。

  • 使用基於 LLVM 的工具,對插裝和目標二進位檔案互動進行細粒度控制。

  • 最適合安全工程師、協定研究人員以及執行深層漏洞分析的開發人員。

  • 使用直接替代模式進行快速、標準的模糊測試活動,利用舊有的 libFuzzer 測試工具。

  • 當您需要處理複雜的自訂輸入、定義獨特的狀態轉換回饋或執行專業二進位分析時,請使用自訂 Rust 函式庫模式。

  • 需要 Clang/LLVM 15-18 以及穩定的 Rust 工具鏈(建議使用 nightly 版本以獲得相容性功能)。

  • 由於需要明確設定並連結各個模糊測試器元件,與傳統的 AFL++ 相比,學習曲線較高。

  • 請確保編譯期間所有專案依賴項(包括 libafl_targets 和 libafl_bolts)均符合目標架構要求。

倉庫統計

Star 數
4,874
Fork 數
424
Open Issue 數
21
主要語言
Python
預設分支
main
同步狀態
閒置
最近同步時間
2026年4月29日 上午07:30
在 GitHub 查看