Introduction
1.
Windows Kernel Fuzzing with LibFuzzer
1.1.
Set Up Development Environment
1.2.
Clone and Build HEVD
1.3.
Install the Code Signing Certificate
1.4.
Create and Start the Driver Service
1.5.
Create a Fuzz Harness
1.6.
Compile the Fuzz Harness
1.7.
Run the Fuzz Harness
1.8.
Extend the Length Faster
2.
Linux Kernel Fuzzing with LibFuzzer
3.
Introduction to LibAFL
4.
Rust Quick-Start for LibAFL
5.
Learn Rust by Fuzzing Rust with LibAFL
5.1.
Create The Crate
5.2.
Change The Crate Lib Type
5.3.
Add LibAFL-Targets Crate as a Dependency
5.4.
Features
5.5.
Choosing Good Fuzz Targets
5.6.
Creating our Fuzz Target
5.7.
Ownership and Moves
5.8.
Borrowing Mutably and Immutably
5.9.
Slices
5.10.
More Resources
5.11.
Implement the Fuzz Target
5.12.
Allocate Some Memory
5.13.
Decode Encoded Input
5.14.
if let Bindings
5.15.
Ranges
5.16.
Test the Fuzz Target
5.17.
Analyzing the Bug
5.18.
Summary
5.19.
Create The Fuzzer Crate
5.20.
Add the LibAFL Crate as a Dependency
5.21.
Add LibAFL-Targets Crate as a Dependency
5.22.
Add the Target Crate as a Dependency
5.23.
Add Additional Dependencies
5.24.
Create a Build Script
5.25.
Coverage Sanitizer
5.26.
The Build Script
5.27.
Delete The Template main.rs
5.28.
Set The Global Allocator
5.29.
Import Coverage Observer
5.30.
Declare Functions From Target
5.31.
Add An Argument Parser
5.32.
Derive Macros
5.33.
cargo build
5.34.
cargo run
5.35.
Add a Harness
5.36.
Closures
5.37.
Create A Harness Closure
5.38.
Add Observers and Feedbacks
5.39.
Observers
5.40.
Feedbacks
5.41.
Add Our Observers and Feedbacks
5.42.
Add Random Provider, Corpus, Solution Corpus, and State
5.43.
Random Provider
5.44.
Corpus
5.45.
Solution Corpus
5.46.
State
5.47.
Add Monitor, Event Manager, Scheduler, and Fuzzer
5.48.
Monitor
5.49.
Event Manager
5.50.
Scheduler
5.51.
Fuzzer
5.52.
Add Executor, Mutator, and Stages
5.53.
Executor
5.54.
Mutator
5.55.
Stages
5.56.
Load the Input Corpus
5.57.
Start The Fuzz Loop
5.58.
Run The Fuzzer
5.59.
Add A Corpus Entry
5.60.
Launch the Fuzzer
5.61.
Triage The Crash
5.62.
Summary
6.
Docker Dev Container
6.1.
Windows Host
6.2.
Linux Host
7.
Virtual Machine
7.1.
Windows Kernel Development
7.1.1.
Install VirtualBox
7.1.2.
Download Windows
7.1.3.
Create a VM
7.1.4.
Install Windows
7.1.5.
Set Up SSH
7.1.6.
Enable SSH Port Forwarding in VirtualBox
7.1.7.
Change Default Shell to PowerShell
7.1.8.
Installing the EWDK
7.1.9.
Installing Development Tools
Light
Rust
Coal
Navy
Ayu
Practical Fuzzing
Docker Dev Container