Tricker-z / PreFuzz

ICSE'22 - PreFuzz: Probabilistic resource-efficient program-smoothing-based Fuzzing
Apache License 2.0
11 stars 2 forks source link
fuzzing

PreFuzz

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.

prefuzz

Published Work

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}
}

Setup

Environment

Tested on Linux verison 4.15.0-76-generic Ubuntu 18.04 64bit with RTX 2080ti

Fuzzing with PreFuzz

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] @@

Contact

Feel free to send an email at tricker51449@gmail.com.