Workaround to get NEUZZ to work on a Mac.
- Python 3
- Tensorflow 2
- Keras
gcc -O3 -funroll-loops ./neuzz.c -o neuzz
We use 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.
Original Work - NEUZZ: a neural-network-assisted fuzzer (S&P'19) See IEEE S&P(Oakland)'19 slides and paper NEUZZ: Efficient Fuzzing with Neural Program Smoothing for details.
Original Repository - https://github.com/Dongdongshe/neuzz