Skip to content
neural network assisted fuzzer
C Python
Branch: master
Clone or download
LyleMi and Dongdongshe update: Rewrite some parts of the code (#15)
* update: Rewrite some parts of the code

* update: Rewrite some parts of the code
Latest commit 2c71795 Sep 5, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
programs Update README.md Mar 3, 2019
LICENSE add license and some minor changes Dec 15, 2018
README.md Update README.md May 23, 2019
afl-gcc Add README for programs/ Dec 15, 2018
afl-showmap Add README for programs/ Dec 15, 2018
neuzz.c
nn.py update: Rewrite some parts of the code (#15) Sep 4, 2019

README.md

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.

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,

  1. Compile the new program from source code using afl-gcc.
  2. Collect the training data by running AFL on the binary for a while(about an hour), then copy the queue folder to neuzz_in.
  3. 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.

Contact

Feel free to send me email about Neuzz. dongdong at cs.columbia.edu

You can’t perform that action at this time.