xref: /aosp_15_r20/external/AFLplusplus/docs/tutorials.md (revision 08b48e0b10e97b33e7b60c5b6e2243bd915777f2)
1*08b48e0bSAndroid Build Coastguard Worker# Tutorials
2*08b48e0bSAndroid Build Coastguard Worker
3*08b48e0bSAndroid Build Coastguard WorkerIf you are a total newbie, try this guide:
4*08b48e0bSAndroid Build Coastguard Worker
5*08b48e0bSAndroid Build Coastguard Worker* [https://github.com/alex-maleno/Fuzzing-Module](https://github.com/alex-maleno/Fuzzing-Module)
6*08b48e0bSAndroid Build Coastguard Worker
7*08b48e0bSAndroid Build Coastguard WorkerHere are some good write-ups to show how to effectively use AFL++:
8*08b48e0bSAndroid Build Coastguard Worker
9*08b48e0bSAndroid Build Coastguard Worker* [https://aflplus.plus/docs/tutorials/libxml2_tutorial/](https://aflplus.plus/docs/tutorials/libxml2_tutorial/)
10*08b48e0bSAndroid Build Coastguard Worker* [https://bananamafia.dev/post/gb-fuzz/](https://bananamafia.dev/post/gb-fuzz/)
11*08b48e0bSAndroid Build Coastguard Worker* [https://bushido-sec.com/index.php/2023/06/19/the-art-of-fuzzing/](https://bushido-sec.com/index.php/2023/06/19/the-art-of-fuzzing/)
12*08b48e0bSAndroid Build Coastguard Worker* [https://securitylab.github.com/research/fuzzing-challenges-solutions-1](https://securitylab.github.com/research/fuzzing-challenges-solutions-1)
13*08b48e0bSAndroid Build Coastguard Worker* [https://securitylab.github.com/research/fuzzing-software-2](https://securitylab.github.com/research/fuzzing-software-2)
14*08b48e0bSAndroid Build Coastguard Worker* [https://securitylab.github.com/research/fuzzing-sockets-FTP](https://securitylab.github.com/research/fuzzing-sockets-FTP)
15*08b48e0bSAndroid Build Coastguard Worker* [https://securitylab.github.com/research/fuzzing-sockets-FreeRDP](https://securitylab.github.com/research/fuzzing-sockets-FreeRDP)
16*08b48e0bSAndroid Build Coastguard Worker* [https://securitylab.github.com/research/fuzzing-apache-1](https://securitylab.github.com/research/fuzzing-apache-1)
17*08b48e0bSAndroid Build Coastguard Worker* [https://mmmds.pl/fuzzing-map-parser-part-1-teeworlds/](https://mmmds.pl/fuzzing-map-parser-part-1-teeworlds/)
18*08b48e0bSAndroid Build Coastguard Worker
19*08b48e0bSAndroid Build Coastguard WorkerIf you do not want to follow a tutorial but rather try an exercise type of
20*08b48e0bSAndroid Build Coastguard Workertraining, then we can highly recommend the following:
21*08b48e0bSAndroid Build Coastguard Worker
22*08b48e0bSAndroid Build Coastguard Worker* [https://github.com/antonio-morales/Fuzzing101](https://github.com/antonio-morales/Fuzzing101)
23*08b48e0bSAndroid Build Coastguard Worker
24*08b48e0bSAndroid Build Coastguard WorkerHere is a good workflow description (and tutorial) for qemu_mode:
25*08b48e0bSAndroid Build Coastguard Worker
26*08b48e0bSAndroid Build Coastguard Worker* [https://airbus-seclab.github.io/AFLplusplus-blogpost/](https://airbus-seclab.github.io/AFLplusplus-blogpost/)
27*08b48e0bSAndroid Build Coastguard Worker
28*08b48e0bSAndroid Build Coastguard WorkerHere is good workflow description for frida_mode:
29*08b48e0bSAndroid Build Coastguard Worker
30*08b48e0bSAndroid Build Coastguard Worker* [https://blog.quarkslab.com/android-greybox-fuzzing-with-afl-frida-mode.html](https://blog.quarkslab.com/android-greybox-fuzzing-with-afl-frida-mode.html)
31*08b48e0bSAndroid Build Coastguard Worker
32*08b48e0bSAndroid Build Coastguard WorkerIf you are interested in fuzzing structured data (where you define what the
33*08b48e0bSAndroid Build Coastguard Workerstructure is), these links have you covered (some are outdated though):
34*08b48e0bSAndroid Build Coastguard Worker
35*08b48e0bSAndroid Build Coastguard Worker* libprotobuf for AFL++:
36*08b48e0bSAndroid Build Coastguard Worker  [https://github.com/P1umer/AFLplusplus-protobuf-mutator](https://github.com/P1umer/AFLplusplus-protobuf-mutator)
37*08b48e0bSAndroid Build Coastguard Worker* libprotobuf raw:
38*08b48e0bSAndroid Build Coastguard Worker  [https://github.com/bruce30262/libprotobuf-mutator_fuzzing_learning/tree/master/4_libprotobuf_aflpp_custom_mutator](https://github.com/bruce30262/libprotobuf-mutator_fuzzing_learning/tree/master/4_libprotobuf_aflpp_custom_mutator)
39*08b48e0bSAndroid Build Coastguard Worker* libprotobuf for old AFL++ API:
40*08b48e0bSAndroid Build Coastguard Worker  [https://github.com/thebabush/afl-libprotobuf-mutator](https://github.com/thebabush/afl-libprotobuf-mutator)
41*08b48e0bSAndroid Build Coastguard Worker* Superion for AFL++:
42*08b48e0bSAndroid Build Coastguard Worker  [https://github.com/adrian-rt/superion-mutator](https://github.com/adrian-rt/superion-mutator)
43*08b48e0bSAndroid Build Coastguard Worker
44*08b48e0bSAndroid Build Coastguard WorkerFor a very in-depth explanation on how AFL++ works check out:
45*08b48e0bSAndroid Build Coastguard Worker[https://blog.ritsec.club/posts/afl-under-hood/](https://blog.ritsec.club/posts/afl-under-hood/)
46*08b48e0bSAndroid Build Coastguard Worker
47*08b48e0bSAndroid Build Coastguard Worker## Video Tutorials
48*08b48e0bSAndroid Build Coastguard Worker
49*08b48e0bSAndroid Build Coastguard Worker* [Install AFL++ Ubuntu](https://www.youtube.com/watch?v=5dCvhkbi3RA)
50*08b48e0bSAndroid Build Coastguard Worker* [[Fuzzing with AFLplusplus] Installing AFLPlusplus and fuzzing a simple C program](https://www.youtube.com/watch?v=9wRVo0kYSlc)
51*08b48e0bSAndroid Build Coastguard Worker* [[Fuzzing with AFLplusplus] How to fuzz a binary with no source code on Linux in persistent mode](https://www.youtube.com/watch?v=LGPJdEO02p4)
52*08b48e0bSAndroid Build Coastguard Worker* [Blackbox Fuzzing #1: Start Binary-Only Fuzzing using AFL++ QEMU mode](https://www.youtube.com/watch?v=sjLFf9q2NRc)
53*08b48e0bSAndroid Build Coastguard Worker* [HOPE 2020 (2020): Hunting Bugs in Your Sleep - How to Fuzz (Almost) Anything With AFL/AFL++](https://www.youtube.com/watch?v=A8ex1hqaQ7E)
54*08b48e0bSAndroid Build Coastguard Worker* [How Fuzzing with AFL works!](https://www.youtube.com/watch?v=COHUWuLTbdk)
55*08b48e0bSAndroid Build Coastguard Worker* [WOOT '20 - AFL++ : Combining Incremental Steps of Fuzzing Research](https://www.youtube.com/watch?v=cZidm6I7KWU)
56*08b48e0bSAndroid Build Coastguard Worker
57*08b48e0bSAndroid Build Coastguard WorkerIf you find other good ones, please send them to us :-)
58