All Projects → vanhauser-thc → afl-dynamorio

vanhauser-thc / afl-dynamorio

Licence: AGPL-3.0 license
run AFL with dynamorio

Programming Languages

C++
36643 projects - #6 most used programming language
shell
77523 projects
CMake
9771 projects
Makefile
30231 projects

Projects that are alternatives of or similar to afl-dynamorio

afl-pin
run AFL with pintool
Stars: ✭ 64 (+100%)
Mutual labels:  fuzzing, afl, afl-fuzz, fuzzer, afl-fuzzer, binary-instrument, thc
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 (+7146.88%)
Mutual labels:  fuzzing, afl, afl-fuzz, fuzzer, afl-fuzzer
afl-dyninst
American Fuzzy Lop + Dyninst == AFL Fuzzing blackbox binaries
Stars: ✭ 65 (+103.13%)
Mutual labels:  fuzzing, afl, afl-fuzz, fuzzer, afl-fuzzer
fuzzuf
Fuzzing Unification Framework
Stars: ✭ 263 (+721.88%)
Mutual labels:  fuzzing, afl, afl-fuzz, fuzzer
e9afl
AFL binary instrumentation
Stars: ✭ 234 (+631.25%)
Mutual labels:  fuzzing, afl, afl-fuzz
Grammar-Mutator
A grammar-based custom mutator for AFL++
Stars: ✭ 133 (+315.63%)
Mutual labels:  fuzzing, afl, afl-fuzz
unicorn-fuzzer
expansion of afl-unicorn using c++
Stars: ✭ 25 (-21.87%)
Mutual labels:  fuzzing, fuzzer, afl-fuzzer
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 (+4112.5%)
Mutual labels:  fuzzing, afl, afl-fuzz
ras-fuzzer
RAS(RAndom Subdomain) Fuzzer
Stars: ✭ 42 (+31.25%)
Mutual labels:  fuzzing, fuzzer
RTSPhuzz
RTSPhuzz - An RTSP Fuzzer written using the Boofuzz framework
Stars: ✭ 33 (+3.13%)
Mutual labels:  fuzzing, fuzzer
5-AFL-suite-docker
Dockerfile for AFL++ and helpful other tools
Stars: ✭ 20 (-37.5%)
Mutual labels:  fuzzing, afl-fuzzer
Janus
Janus: a state-of-the-art file system fuzzer on Linux
Stars: ✭ 139 (+334.38%)
Mutual labels:  fuzzing, fuzzer
Winafl
A fork of AFL for fuzzing Windows binaries
Stars: ✭ 1,826 (+5606.25%)
Mutual labels:  fuzzing, afl
vaf
Vaf is a cross-platform very advanced and fast web fuzzer written in nim
Stars: ✭ 294 (+818.75%)
Mutual labels:  fuzzing, fuzzer
Sienna Locomotive
A user-friendly fuzzing and crash triage tool for Windows
Stars: ✭ 130 (+306.25%)
Mutual labels:  fuzzing, fuzzer
Pythonfuzz
coverage guided fuzz testing for python
Stars: ✭ 175 (+446.88%)
Mutual labels:  fuzzing, fuzzer
Sharpfuzz
AFL-based fuzz testing for .NET
Stars: ✭ 185 (+478.13%)
Mutual labels:  fuzzing, fuzzer
Grammarinator
ANTLR v4 grammar-based test generator
Stars: ✭ 162 (+406.25%)
Mutual labels:  fuzzing, fuzzer
HITB2020 FSFUZZER
My Material for the HITB presentation
Stars: ✭ 33 (+3.13%)
Mutual labels:  fuzzing, fuzzer
Honggfuzz Rs
Fuzz your Rust code with Google-developed Honggfuzz !
Stars: ✭ 222 (+593.75%)
Mutual labels:  fuzzing, fuzzer

binary-only fuzzing with dynamorio and afl

Installation

  1. download, compile and install afl => https://github.com/vanhauser-thc/AFLplusplus
  2. download, compile and install dyninst => https://github.com/dyninst/dyninst
  3. download, compile and install afl-dyninst => https://github.com/vanhauser-thc/afl-dyninst
  4. download, compile and install dynamorio => https://github.com/DynamoRIO/dynamorio
  5. make a symlink to the afl folder here named "afl" , e.g. "ln -s ../AFLplusplus afl"
  6. export DYNAMORIO_HOME=/path/to/dynamorio/build directory
  7. make
  8. make install

How to run

  1. afl-dyninst.sh -i program -o program_instrumented -D It is a good idea to add -e and -E with well selected function addresses to make the fuzzing faster NOTE: you can skip this step and use -forkserver option in the next step. But this is slower at the moment!

  2. afl-fuzz-dynamorio.sh [normal afl-fuzz options] That's it! If you fuzzing does not run, afl-fuzz might need more memory, set AFL_MEM to a high value, e.g. 700 for 700MB

When to use it

when normal afl-dyninst is crashing the binary and qemu mode -Q is not an option. Dynamorio is x10-50 slower than Qemu, 25x slower than dyninst - however 10x faster than Pintool, and works additionally on ARM and AARCH64. In memory fuzzing (function fuzzing) is a much faster option and implemented in a future release.

Who and where

https://github.com/vanhauser-thc/afl-dynamorio

Marc "van Hauser" Heuse [email protected] || [email protected]

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