PreFuzz is a neural program-smoothing-based fuzzing to guide fuzzing mutation with resource-efficient edge selection and probabilistic byte selection. PreFuzz is implemented based on Neuzz.
Evaluating and Improving Neural Program-Smoothing-based Fuzzing, ICSE 2022.
@article{wu2022evaluating,
title={Evaluating and Improving Neural Program-Smoothing-based Fuzzing},
author={Wu, Mingyuan and Jiang, Ling and Xiang, Jiahong and Zhang, Yuqun and Yang, Guowei and Ma, Huixin and Nie, Sen and Wu, Shi and Cui, Heming and Zhang, Lingming},
year={2022}
}
Tested on Linux verison 4.15.0-76-generic Ubuntu 18.04 64bit with RTX 2080ti
- Python (>= 3.7)
- Pytorch 1.3.1
Limited by the implementation, the execution should be in the same directory
# train model and communicate with fuzzer via socket
$ python nn.py /path/to/program [params]
# start fuzz (max_len: maximum size of the inital seed corpus)
$ ./fuzz -i fuzz_input -o seeds -l max_len /path/to/program [params] @@
Feel free to send an email at [email protected].