All Projects → GJDuck → e9afl

GJDuck / e9afl

Licence: GPL-3.0 license
AFL binary instrumentation

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to e9afl

Aflplusplus
The fuzzer afl++ is afl with community patches, qemu 5.1 upgrade, collision-free coverage, enhanced laf-intel & redqueen, AFLfast++ power schedules, MOpt mutators, unicorn_mode, and a lot more!
Stars: ✭ 2,319 (+891.03%)
Mutual labels:  instrumentation, fuzzing, afl, afl-fuzz
afl-dyninst
American Fuzzy Lop + Dyninst == AFL Fuzzing blackbox binaries
Stars: ✭ 65 (-72.22%)
Mutual labels:  instrumentation, fuzzing, afl, afl-fuzz
afl-dynamorio
run AFL with dynamorio
Stars: ✭ 32 (-86.32%)
Mutual labels:  fuzzing, afl, afl-fuzz
LibAFL
Advanced Fuzzing Library - Slot your Fuzzer together in Rust! Scales across cores and machines. For Windows, Android, MacOS, Linux, no_std, ...
Stars: ✭ 1,348 (+476.07%)
Mutual labels:  fuzzing, afl, afl-fuzz
fuzzuf
Fuzzing Unification Framework
Stars: ✭ 263 (+12.39%)
Mutual labels:  fuzzing, afl, afl-fuzz
StochFuzz
Sound and Cost-effective Fuzzing of Stripped Binaries by Incremental and Stochastic Rewriting
Stars: ✭ 165 (-29.49%)
Mutual labels:  fuzzing, afl, binary-rewriting
afl-pin
run AFL with pintool
Stars: ✭ 64 (-72.65%)
Mutual labels:  fuzzing, afl, afl-fuzz
Grammar-Mutator
A grammar-based custom mutator for AFL++
Stars: ✭ 133 (-43.16%)
Mutual labels:  fuzzing, afl, afl-fuzz
Winafl
A fork of AFL for fuzzing Windows binaries
Stars: ✭ 1,826 (+680.34%)
Mutual labels:  fuzzing, afl
Fuzzfactory
Domain-Specific Fuzzing with Waypoints
Stars: ✭ 167 (-28.63%)
Mutual labels:  instrumentation, fuzzing
instrumentation
Assorted pintools
Stars: ✭ 24 (-89.74%)
Mutual labels:  binary, instrumentation
Qsym
QSYM: A Practical Concolic Execution Engine Tailored for Hybrid Fuzzing
Stars: ✭ 459 (+96.15%)
Mutual labels:  binary, fuzzing
Formatfuzzer
FormatFuzzer is a framework for high-efficiency, high-quality generation and parsing of binary inputs.
Stars: ✭ 117 (-50%)
Mutual labels:  binary, fuzzing
Snodge
Randomly mutate JSON, XML, HTML forms, text and binary data for fuzz testing
Stars: ✭ 121 (-48.29%)
Mutual labels:  binary, fuzzing
afl-cygwin
AFL "mostly" ported to cygwin
Stars: ✭ 24 (-89.74%)
Mutual labels:  fuzzing, afl
FuzzImageMagick
Sample files for fuzzing ImageMagick
Stars: ✭ 15 (-93.59%)
Mutual labels:  fuzzing, afl
ronin-support
A support library for Ronin. Like activesupport, but for hacking!
Stars: ✭ 23 (-90.17%)
Mutual labels:  binary, fuzzing
kbdysch
A collection of user-space Linux kernel specific guided fuzzers based on LKL
Stars: ✭ 62 (-73.5%)
Mutual labels:  fuzzing, afl
PersonalStuff
This is a repo is to upload files done during my research.
Stars: ✭ 94 (-59.83%)
Mutual labels:  fuzzing, afl-fuzz
IMCtermite
Enables extraction of measurement data from binary files with extension 'raw' used by proprietary software imcFAMOS/imcSTUDIO and facilitates its storage in open source file formats
Stars: ✭ 20 (-91.45%)
Mutual labels:  binary

E9AFL --- Binary AFL

E9AFL inserts American Fuzzy Lop (AFL) instrumentation into x86_64 Linux binaries. This allows binaries to be fuzzed without the need for recompilation.

E9AFL uses E9Patch to insert the AFL instrumentation via static binary rewriting.

Download

Pre-built packages for E9AFL can be downloaded here:

Building

To build E9AFL, simply run the build.sh script:

    $ ./build.sh

To build the Debian package, simply run the install.sh script:

    $ ./install.sh

Usage

First, install afl-fuzz:

    $ sudo apt-get install afl

To use E9AFL, simply run the command:

    $ ./e9afl /path/to/binary

This will generate an AFL-instrumented binary.afl which can be used with afl-fuzz.

For more information on tool usage, see the man page:

    $ man -l doc/e9afl.l

Example

To fuzz the binutils readelf program:

    $ ./e9afl readelf
    $ mkdir -p input
    $ mkdir -p output
    $ head -n 1 `which ls` > input/exe
    $ afl-fuzz -m none -i input/ -o output/ -- ./readelf.afl -a @@

If all goes well the output should look something like this:

AFL example

Troubleshooting

Some instrumented binaries may crash during AFL initialization:

    PROGRAM ABORT : Fork server crashed ...

This is often caused by an insufficient memory limit. See AFL's -m option for more information.

Further Reading

Bugs

Please report bugs here.

License

GLPv3

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