1*08b48e0bSAndroid Build Coastguard Worker 2*08b48e0bSAndroid Build Coastguard Workerif [ -z ${STANDALONE_TOOLCHAIN_PATH} ]; then 3*08b48e0bSAndroid Build Coastguard Worker echo "please set the android-standalone-toolchain path in STANDALONE_TOOLCHAIN_PATH environmental variable" 4*08b48e0bSAndroid Build Coastguard Worker echo "for example: " 5*08b48e0bSAndroid Build Coastguard Worker echo " export STANDALONE_TOOLCHAIN_PATH=/home/android-standalone-toolchain-21/" 6*08b48e0bSAndroid Build Coastguard Worker exit 7*08b48e0bSAndroid Build Coastguard Workerfi 8*08b48e0bSAndroid Build Coastguard Worker 9*08b48e0bSAndroid Build Coastguard Workerif [ -z ${QBDI_SDK_PATH} ]; then 10*08b48e0bSAndroid Build Coastguard Worker echo "please set the qbdi sdk path in QBDI_SDK_PATH environmental variable" 11*08b48e0bSAndroid Build Coastguard Worker echo "for example: " 12*08b48e0bSAndroid Build Coastguard Worker echo " export QBDI_SDK_PATH=/home/QBDI-Android/" 13*08b48e0bSAndroid Build Coastguard Worker exit 14*08b48e0bSAndroid Build Coastguard Workerfi 15*08b48e0bSAndroid Build Coastguard Worker 16*08b48e0bSAndroid Build Coastguard Worker 17*08b48e0bSAndroid Build Coastguard Worker 18*08b48e0bSAndroid Build Coastguard Workerif [ "$1" = "x86" ]; then 19*08b48e0bSAndroid Build Coastguard Worker echo "build x86 qbdi" 20*08b48e0bSAndroid Build Coastguard Worker compiler_prefix="${STANDALONE_TOOLCHAIN_PATH}/bin/" 21*08b48e0bSAndroid Build Coastguard Worker if [ -z ${CC} ]; then 22*08b48e0bSAndroid Build Coastguard Worker export CC=i686-linux-android-gcc 23*08b48e0bSAndroid Build Coastguard Worker fi 24*08b48e0bSAndroid Build Coastguard Worker if [ -z ${CXX} ]; then 25*08b48e0bSAndroid Build Coastguard Worker export CXX=i686-linux-android-g++ 26*08b48e0bSAndroid Build Coastguard Worker fi 27*08b48e0bSAndroid Build Coastguard Workerelif [ "$1" = "x86_64" ]; then 28*08b48e0bSAndroid Build Coastguard Worker echo "build x86_64 qbdi" 29*08b48e0bSAndroid Build Coastguard Worker compiler_prefix="${STANDALONE_TOOLCHAIN_PATH}/bin/" 30*08b48e0bSAndroid Build Coastguard Worker if [ -z ${CC} ]; then 31*08b48e0bSAndroid Build Coastguard Worker export CC=x86_64-linux-android-gcc 32*08b48e0bSAndroid Build Coastguard Worker fi 33*08b48e0bSAndroid Build Coastguard Worker if [ -z ${CXX} ]; then 34*08b48e0bSAndroid Build Coastguard Worker export CXX=x86_64-linux-android-g++ 35*08b48e0bSAndroid Build Coastguard Worker fi 36*08b48e0bSAndroid Build Coastguard Workerelse 37*08b48e0bSAndroid Build Coastguard Worker echo "usage: ./build.sh arch[x86, x86_64]" 38*08b48e0bSAndroid Build Coastguard Worker exit 39*08b48e0bSAndroid Build Coastguard Workerfi 40*08b48e0bSAndroid Build Coastguard Worker 41*08b48e0bSAndroid Build Coastguard Worker 42*08b48e0bSAndroid Build Coastguard WorkerCFLAGS="-I${QBDI_SDK_PATH}/usr/local/include/ -L${QBDI_SDK_PATH}/usr/local/lib/" 43*08b48e0bSAndroid Build Coastguard Worker 44*08b48e0bSAndroid Build Coastguard Workerecho "[+] Building the QBDI template" 45*08b48e0bSAndroid Build Coastguard Worker# build the qbdi template 46*08b48e0bSAndroid Build Coastguard Worker${compiler_prefix}${CXX} -o loader template.cpp -lQBDI -ldl -w -g ${CFLAGS} 47*08b48e0bSAndroid Build Coastguard Worker 48*08b48e0bSAndroid Build Coastguard Workerecho "[+] Building the demo library" 49*08b48e0bSAndroid Build Coastguard Worker# build the demo share library 50*08b48e0bSAndroid Build Coastguard Worker${compiler_prefix}${CC} -shared -o libdemo.so demo-so.c -w -g 51*08b48e0bSAndroid Build Coastguard Worker 52*08b48e0bSAndroid Build Coastguard Workerecho "[+] Building afl-fuzz for Android" 53*08b48e0bSAndroid Build Coastguard Worker# build afl-fuzz 54*08b48e0bSAndroid Build Coastguard Workercd ../.. 55*08b48e0bSAndroid Build Coastguard Worker${compiler_prefix}${CC} -O3 -funroll-loops -Wall -D_FORTIFY_SOURCE=2 -g -Wno-pointer-sign -I include/ -DAFL_PATH=\"/usr/local/lib/afl\" -DBIN_PATH=\"/usr/local/bin\" -DDOC_PATH=\"/usr/local/share/doc/afl\" -Wno-unused-function src/afl-fuzz*.c src/afl-common.c src/afl-sharedmem.c src/afl-forkserver.c src/afl-performance.c -o utils/qbdi_mode/afl-fuzz -ldl -lm -w 56*08b48e0bSAndroid Build Coastguard Worker 57*08b48e0bSAndroid Build Coastguard Workerecho "[+] All done. Enjoy!" 58