Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yuawn/fuzzing
Fuzzing tutorial with easy-to-learn labs 🚀
https://github.com/yuawn/fuzzing
101 afl automation education fuzz-testing fuzzing instrumentation klee llvm security-testing securtiy symbolic-execution testing tutorial vulnerability
Last synced: about 1 month ago
JSON representation
Fuzzing tutorial with easy-to-learn labs 🚀
- Host: GitHub
- URL: https://github.com/yuawn/fuzzing
- Owner: yuawn
- License: mit
- Created: 2022-06-04T06:05:49.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-09-04T04:46:14.000Z (over 2 years ago)
- Last Synced: 2024-12-08T19:55:24.316Z (about 1 month ago)
- Topics: 101, afl, automation, education, fuzz-testing, fuzzing, instrumentation, klee, llvm, security-testing, securtiy, symbolic-execution, testing, tutorial, vulnerability
- Language: C++
- Homepage:
- Size: 78.1 KB
- Stars: 158
- Watchers: 4
- Forks: 18
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fuzzing
Fuzzing tutorial with easy to learn labs.
# Lessons
| Lesson | keyword | Lab |
| ------------- | ------------- | ------------- |
| [Lesson 00 - Fuzzing with AFL++](00-fuzzing) | afl-cc, afl-clang-lto, fuzzing | :white_check_mark: |
| [Lesson 01 - Use sanitizer to catch silent bugs](01-sanitizer) | AddressSanitizer(ASAN) | :white_check_mark: |
| [Lesson 02 - Improve code coverage using dictionary](02-dictionary) | dictionary, branch constraint, split-comparison | :white_check_mark: |
| [Lesson 03 - Parallel fuzzing: combine the advantages of each fuzzer](03-parallel_fuzzing) | parallel fuzzing, seed pool syncing | :white_check_mark: |
| [Lesson 04 - Increase fuzzing performance by persistent mode](04-persistent_mode) | fuzzing harness, persistent mode | :white_check_mark: |
| [Lesson 05 - Write a LLVM Pass to do binary instrumentation](05-LLVM_Pass) | LLVM Pass, binary instrumentation | :white_check_mark: |
| [Lesson 06 - Integrate custom LLVM Pass into AFL++](06-AFLpp_LLVM_Pass_integration) | custom LLVM Pass in AFL++, integration example | :white_check_mark: |
| [Lesson 07 - Playing symbolic execution on a maze with KLEE](07-KLEE_symbolic_execution) | symbolic execution, KLEE | :white_check_mark: |## Setup
```shell
./setup.sh
make
```## Environment
| Name | Version |
| ---- | ------- |
| Ubuntu | [20.04](https://releases.ubuntu.com/20.04/), [22.04](https://releases.ubuntu.com/22.04/) |
| LLVM (clang, lld) | [14.0.6](https://github.com/llvm/llvm-project/releases/tag/llvmorg-14.0.6) |
| AFL++ | [4.01c](https://github.com/AFLplusplus/AFLplusplus/releases/tag/4.01c) |
| KLEE | [v2.3](https://github.com/klee/klee/releases/tag/v2.3) |