Angora's Pin mode - Use libdft64 for taint tracking

June 14, 2019 ยท View on GitHub

Angora now supports using libdft64 for taint anlysis instead of DFSan (LLVM mode). The feature is still experimental.

Build requirements

Environment Variables

export LIBDFT_PATH=/path-to-libdft64

Build Pin mode

cd pin_mode
make OBJDIR=../bin/lib/

Build a target program

As Build a target program mentioned, Angora uses two variables USE_FAST and USE_TRACK to compile two different version programs respectively. In Pin mode, Angora uses variable USE_PIN to compile the one with taint tracking instead of USE_TRACK.

USE_PIN=1 CC=/path-to-angora/bin/angora-clang CXX=/path-to-angora/bin/angora-clang++ make 

Run Angora in Pin mode

Command line options -m is used to set which mode you are using in fuzzing. We have "llvm" and "pin" modes.

./angora_fuzzer -m pin -i input -o output -t path-to-taint-program-pin -- program args(..)