xref: /aosp_15_r20/external/AFLplusplus/docs/ideas.md (revision 08b48e0b10e97b33e7b60c5b6e2243bd915777f2)
1# Ideas for AFL++
2
3In the following, we describe a variety of ideas that could be implemented for
4future AFL++ versions.
5
6**NOTE:** Our GSoC participation is concerning [libafl](https://github.com/AFLplusplus/libafl), not AFL++.
7
8## Analysis software
9
10Currently analysis is done by using afl-plot, which is rather outdated. A GTK or
11browser tool to create run-time analysis based on fuzzer_stats, queue/id*
12information and plot_data that allows for zooming in and out, changing min/max
13display values etc. and doing that for a single run, different runs and
14campaigns vs. campaigns. Interesting values are execs, and execs/s, edges
15discovered (total, when each edge was discovered and which other fuzzer share
16finding that edge), test cases executed. It should be clickable which value is X
17and Y axis, zoom factor, log scaling on-off, etc.
18
19Mentor: vanhauser-thc
20
21## Support other programming languages
22
23Other programming languages also use llvm hence they could be (easily?)
24supported for fuzzing, e.g., mono, swift, go, kotlin native, fortran, ...
25
26GCC also supports: Objective-C, Fortran, Ada, Go, and D (according to
27[Gcc homepage](https://gcc.gnu.org/))
28
29LLVM is also used by: Rust, LLGo (Go), kaleidoscope (Haskell), flang (Fortran),
30emscripten (JavaScript, WASM), ilwasm (CIL (C#)) (according to
31[LLVM frontends](https://gist.github.com/axic/62d66fb9d8bccca6cc48fa9841db9241))
32
33Mentor: vanhauser-thc
34
35## Machine Learning
36
37Something with machine learning, better than
38[NEUZZ](https://github.com/dongdongshe/neuzz) :-) Either improve a single
39mutator through learning of many different bugs (a bug class) or gather deep
40insights about a single target beforehand (CFG, DFG, VFG, ...?) and improve
41performance for a single target.
42
43Mentor: domenukk
44
45## Your idea!
46
47Finally, we are open to proposals! Create an issue at
48https://github.com/AFLplusplus/AFLplusplus/issues and let's discuss :-)
49