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