AFL++

https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/INSTALL.md





sudo apt-get update

sudo apt-get install -y build-essential python3-dev automake cmake git flex bison libglib2.0-dev libpixman-1-dev python3-setuptools cargo libgtk-3-dev

# try to install llvm 12 and install the distro default if that fails

sudo apt-get install -y lld-12 llvm-12 llvm-12-dev clang-12 || sudo apt-get install -y lld llvm llvm-dev clang

sudo apt-get install -y gcc-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-plugin-dev libstdc++-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-dev

sudo apt-get install -y ninja-build # for QEMU mode

git clone https://github.com/AFLplusplus/AFLplusplus
cd AFLplusplus

make distrib

sudo make install

afl-gcc-fast -fsanitize=address example.c -o example

#include <stdio.h>
#include "argv-fuzz-inl.h"

int main(int argc, char *argv[])
{

	AFL_INIT_ARGV();
	if(argc<2)
		return 0;
	char buff[32];
	memcpy(buff,argv[1],strlen(argv[1]));
	

	return 0;
}

afl-fuzz -i test -o out -M f0 ./example

For master slave hierarcy of afl we can give -M and -S flags like this:

afl-fuzz -i test -o out -M f0 ./example

afl-fuzz -i test -o out -S f1 ./example

Under the our directory masters and slaves will be directorized

cmake -DCMAKE_C_COMPILER=afl-clang-fast -DCMAKE_CXX_COMPILER=afl-clang-fast++ -DCMAKE_CXX_FLAGS="-fno-rtti -fsanitize=address,undefined -fno-sanitize-recover=all -g" -DCMAKE_C_FLAGS="-fno-rtti -fsanitize=address,undefined -fno-sanitize-recover=all -g" -DCMAKE_EXE_LINKER_FLAGS="-fno-rtti -fsanitize=address,undefined -fno-sanitize-recover=all" DCMAKE_INSTALL_PREFIX=/home/fuzz/fuzzing/xpdf-4.03/install/ -DCMAKE_MODULE_LINKER_FLAGS="-fno-rtti -fsanitize=address,undefined -fno-sanitize-recover=all" -DCMAKE_BUILD_TYPE=Debug,ASAN,UBSAN -DWITH_SSE2=ON -DMONOLITHIC_BUILD=ON -DBUILD_SHARED_LIBS=OFF .

Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir