這些文章是我在 2022 年參加 IThome 鐵人賽所撰寫的系列文,內容概括了基礎的模糊測試相關知識,並以大量的"查閱原始碼"來了解內部機制,希望對一些想了解模糊測試底層實作的人有幫助。
- [Day 1] 模糊測試概念總覽
- [Day 2] Fuzzing 內部架構
- [Day 3] 透過 Sanitizer 偵測程式異常
- [Day 4] 近代 fuzzer 始祖 - AFL - 總覽 & 編譯
- [Day 5] 近代 fuzzer 始祖 - AFL - 插樁 & 組譯
- [Day 6] 近代 fuzzer 始祖 - AFL - 插樁程式碼
- [Day 7] 近代 fuzzer 始祖 - AFL - Fuzzer - 初始化 & Fuzzing loop
- [Day 8] 近代 fuzzer 始祖 - AFL - Fuzzer - 校正 & Fork server
- [Day 9] 近代 fuzzer 始祖 - AFL - Fuzzer - Trimming & Mutation
- [Day 10] 近代 fuzzer 始祖 - AFL - Fuzzer - Interesting input
- [Day 11] Coverage-guided fuzzer - 對 source-code 程式做模糊測試
- [Day 12] Coverage-guided fuzzer - 對 binary-only 程式做模糊測試 - Static binary rewriting
- [Day 13] Coverage-guided fuzzer - 對 binary-only 程式做模糊測試 - Dynamic binary instrumentation (上)
- [Day 14] Coverage-guided fuzzer - 對 binary-only 程式做模糊測試 - Dynamic binary instrumentation (下)
- [Day 15] Coverage-guided fuzzer - 對 binary-only 程式做模糊測試 - Other
- [Day 16] 優化找 coverage 的能力 - 污點分析 Taint analysis
- [Day 17] 優化找 coverage 的能力 - 符號執行 Symbolic execution & 實際運用的困難
- [Day 18] 優化找 coverage 的能力 - 鏈結時期優化 (LTO)
- [Day 19] 優化找 coverage 的能力 - REDQUEEN
- [Day 20] 優化 seed selection
- [Day 21] 優化 mutation - MOpt
- [Day 22] OS fuzzer - kAFL 論文 - 概念總覽 & 背景知識
- [Day 23] OS fuzzer - kAFL 論文 - 設計框架 & 實驗結果
- [Day 24] OS fuzzer - kAFL 原始碼 - Patched QEMU & KVM
- [Day 25] OS fuzzer - kAFL 原始碼 - The fuzzer
- [Day 26] OS fuzzer - syzkaller - 介紹 & 執行環境建置
- [Day 27] OS fuzzer - syzkaller - syzlang & syz-manager
- [Day 28] OS fuzzer - syzkaller - syz-fuzzer & syz-executor
- [Day 29] Hypervisor fuzzer - Nyx
- [Day 30] Hypervisor fuzzer - Hypercube 與參賽心得
基本上文章內容極少參考第二手資料,如果內容有誤就代表我還沒完全理解,麻煩通知我一聲或是開 issue 討論,謝謝!
鐵人賽連結: https://ithelp.ithome.com.tw/users/20151153/ironman/5164