All Projects → hbowden → nextgen

hbowden / nextgen

Licence: other
A Genetic File, Syscall and Network Fuzzer.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to nextgen

Janus
Janus: a state-of-the-art file system fuzzer on Linux
Stars: ✭ 139 (+139.66%)
Mutual labels:  fuzzer
Codealchemist
Semantics-aware Code Generation for Finding JS engine Vulnerabilities
Stars: ✭ 204 (+251.72%)
Mutual labels:  fuzzer
afl-dyninst
American Fuzzy Lop + Dyninst == AFL Fuzzing blackbox binaries
Stars: ✭ 65 (+12.07%)
Mutual labels:  fuzzer
Protofuzz
Google Protocol Buffers message generator
Stars: ✭ 171 (+194.83%)
Mutual labels:  fuzzer
Javafuzz
coverage guided fuzz testing for java
Stars: ✭ 193 (+232.76%)
Mutual labels:  fuzzer
Honggfuzz Rs
Fuzz your Rust code with Google-developed Honggfuzz !
Stars: ✭ 222 (+282.76%)
Mutual labels:  fuzzer
Sienna Locomotive
A user-friendly fuzzing and crash triage tool for Windows
Stars: ✭ 130 (+124.14%)
Mutual labels:  fuzzer
s3-fuzzer
🔐 A concurrent, command-line AWS S3 Fuzzer. Written in Go.
Stars: ✭ 43 (-25.86%)
Mutual labels:  fuzzer
Ntcall64
Windows NT x64 syscall fuzzer
Stars: ✭ 201 (+246.55%)
Mutual labels:  fuzzer
Fuzzcheck Rs
Structure-aware, in-process, coverage-guided, evolutionary fuzzing engine for Rust functions.
Stars: ✭ 247 (+325.86%)
Mutual labels:  fuzzer
Pythonfuzz
coverage guided fuzz testing for python
Stars: ✭ 175 (+201.72%)
Mutual labels:  fuzzer
Sharpfuzz
AFL-based fuzz testing for .NET
Stars: ✭ 185 (+218.97%)
Mutual labels:  fuzzer
Grr
High-throughput fuzzer and emulator of DECREE binaries
Stars: ✭ 229 (+294.83%)
Mutual labels:  fuzzer
Grammarinator
ANTLR v4 grammar-based test generator
Stars: ✭ 162 (+179.31%)
Mutual labels:  fuzzer
vaf
Vaf is a cross-platform very advanced and fast web fuzzer written in nim
Stars: ✭ 294 (+406.9%)
Mutual labels:  fuzzer
Libprotobuf Mutator fuzzing learning
Learn how to combine libprotobuf-mutator with libfuzzer & AFL++
Stars: ✭ 134 (+131.03%)
Mutual labels:  fuzzer
Gramfuzz
gramfuzz is a grammar-based fuzzer that lets one define complex grammars to generate text and binary data formats.
Stars: ✭ 209 (+260.34%)
Mutual labels:  fuzzer
candy
🍭 A sweet programming language that is robust, minimalistic, and expressive.
Stars: ✭ 84 (+44.83%)
Mutual labels:  fuzzer
ras-fuzzer
RAS(RAndom Subdomain) Fuzzer
Stars: ✭ 42 (-27.59%)
Mutual labels:  fuzzer
Scout
🔭 Lightweight URL fuzzer and spider: Discover a web server's undisclosed files, directories and VHOSTs
Stars: ✭ 241 (+315.52%)
Mutual labels:  fuzzer

nextgen

A Genetic File, Syscall and Network Fuzzer for modern systems.

Coverity Scan Build Status [![Build Status](https://travis-ci.org/hbowden/nextgen.svg?branch=master)](https://travis-ci.org/hbowden/nextgen)

OS-Support

Currently only 64bit versions of FreeBSD, Linux, MacOS and Windows with Cygwin are supported.

Build-FreeBSD

To build nextgen on FreeBSD you will need to install a few dependencies and have the FreeBSD source tree installed at /usr/src as well. Use the command below to install the needed dependencies.

sudo pkg install gmake autotools cmake

Use the command below if you don't have the FreeBSD source tree installed. The command below assumes your running FreeBSD 10.3, if you are not change the command accordingly.

sudo svnlite co https://svn0.us-west.freebsd.org/base/release/10.3.0/ /usr/src

Next run the setup script, this will build any dependencies needed for nextgen on FreeBSD.

./setup.sh

Create a directory called build and change to it.

mkdir build && cd build

Run cmake and pass the path to the main source directory.

cmake ..

Finally use make or gmake to build nextgen.

make

Build-OSX

To build nextgen on OSX or macOS you will need to install command line tools if they are not already installed on your system. Run the command below in terminal to install the command line tools. Note this command only works for OSX 10.9 and later.

xcode-select --install

Now you will need to install a few dependencies before building nextgen. The recommended way to get these dependencies is to use homebrew. To install homebrew use.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Next install cmake and automake using homebrew.

brew install cmake automake

Run the setup script to build the nextgen dependencies.

./setup.sh

Create a directory called build and change to it.

mkdir build && cd build

Run cmake and pass the path to the main source directory.

cmake ..

Finally use make or gmake to build nextgen.

make

Build-Linux

To build nextgen on Linux you will first need to install aclocal-1.15. If your distributions packgage manager doesn't have aclocal-1.15, the easiest way to get it is to run the get-aclocal script that comes packaged with nextgen. This script needs to be run with root privileges and installs the automake-1.15 package to /usr/local/bin/ and includes aclocal-1.15.

sudo ./get-aclocal.sh

Next run the setup script, this will build any dependencies needed for nextgen on Linux.

 ./setup.sh

Create a directory called build and change to it.

mkdir build && cd build

Run cmake and pass the path to the main source directory.

cmake ..

Finally use make to build nextgen.

make

On some distributions of Linux such as ubuntu you will have to raise the ulimit on your system because it is set low.

ulimit -n 15743

Install

Finally after building nextgen for your platform you can install nextgen with sudo make install. This will install the required dynamic libraries built earlier.

To run nextgen use the binary in the nextgen directory, if you run nextgen outside its directory, nextgen won't find its plugin directory. This limitation will be fixed later.

Documentation

To build the documentation for nextgen you will need doxygen installed on your system, then just run...

doxygen Doxyfile

Then you can open the file index.html in the newly generated folder html in your browser.

Example

Below is an example of running nextgen as a syscall fuzzer.

sudo ./nextgen --syscall --out /file/path/to/create/output/directory

To use the syscall fuzzer without probes and the genetic algo pass --dumb.

sudo ./nextgen --syscall --dumb --out /file/path/to/create/output/directory

Nextgen will be ported to other operating systems besides FreeBSD, Linux and OSX and will be implemented in this order illumos, OpenBSD, and finally NetBSD. Porting Nextgen is mainly a matter of having a working libdtrace available on your platform.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].