GitHub - Dongdongshe/neuzz: neural network assisted fuzzer
source link: https://github.com/Dongdongshe/neuzz
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
NEUZZ: a neural-network-assisted fuzzer (S&P'19)
See IEEE S&P(Oakland)'19 paper NEUZZ: Efficient Fuzzing with Neural Program Smoothing for details.
Prerequisite
Tested on a machine with Nvidia 1080Ti, Ubuntu 16.04/18.04, Tensorflow 1.8.0 and Keras 2.2.3.
We recommend running NEUZZ on a machine with a Nvidia 1080Ti or higher for efficient NN training.
- Python 2.7
- Tensorflow
- Keras
Build
gcc -O3 -funroll-loops ./neuzz.c -o neuzz
Usage
We use a sample program readelf as an example.
Open a terminal, start nn module
#python nn.py [program [arguments]]
python nn.py ./readelf -a
open another terminal, start neuzz module.
#./neuzz -i in_dir -o out_dir -l mutation_len [program path [arguments]] @@
./neuzz -i neuzz_in -o seeds -l 7506 ./readelf -a @@
If you want to try NEUZZ on a new program,
- Compile the new program from source code using afl-gcc.
- Collect the training data by running AFL on the binary for a while(about an hour), then copy the queue folder to neuzz_in.
- Follow the above two steps to start NN module and NEUZZ module.
Sample programs
Try 10 real-world programs on NEUZZ. Check setup details at programs/[program names]/README.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK