1*08b48e0bSAndroid Build Coastguard Worker#!/bin/sh 2*08b48e0bSAndroid Build Coastguard Worker 3*08b48e0bSAndroid Build Coastguard Worker. ./test-pre.sh 4*08b48e0bSAndroid Build Coastguard Worker 5*08b48e0bSAndroid Build Coastguard Workertest -z "$AFL_CC" && unset AFL_CC 6*08b48e0bSAndroid Build Coastguard Worker 7*08b48e0bSAndroid Build Coastguard Worker$ECHO "$BLUE[*] Testing: shared library extensions" 8*08b48e0bSAndroid Build Coastguard Workercc $CFLAGS -O0 -o test-compcov test-compcov.c > /dev/null 2>&1 9*08b48e0bSAndroid Build Coastguard Workertest -e ../libtokencap.so && { 10*08b48e0bSAndroid Build Coastguard Worker AFL_TOKEN_FILE=token.out LD_PRELOAD=../libtokencap.so DYLD_INSERT_LIBRARIES=../libtokencap.so DYLD_FORCE_FLAT_NAMESPACE=1 ./test-compcov foobar > /dev/null 2>&1 11*08b48e0bSAndroid Build Coastguard Worker grep -q BUGMENOT token.out > /dev/null 2>&1 && { 12*08b48e0bSAndroid Build Coastguard Worker $ECHO "$GREEN[+] libtokencap did successfully capture tokens" 13*08b48e0bSAndroid Build Coastguard Worker } || { 14*08b48e0bSAndroid Build Coastguard Worker $ECHO "$RED[!] libtokencap did not capture tokens" 15*08b48e0bSAndroid Build Coastguard Worker CODE=1 16*08b48e0bSAndroid Build Coastguard Worker } 17*08b48e0bSAndroid Build Coastguard Worker rm -f token.out 18*08b48e0bSAndroid Build Coastguard Worker} || { 19*08b48e0bSAndroid Build Coastguard Worker $ECHO "$YELLOW[-] libtokencap is not compiled, cannot test" 20*08b48e0bSAndroid Build Coastguard Worker INCOMPLETE=1 21*08b48e0bSAndroid Build Coastguard Worker} 22*08b48e0bSAndroid Build Coastguard Workertest -e ../libdislocator.so && { 23*08b48e0bSAndroid Build Coastguard Worker { 24*08b48e0bSAndroid Build Coastguard Worker ulimit -c 1 25*08b48e0bSAndroid Build Coastguard Worker # DYLD_INSERT_LIBRARIES and DYLD_FORCE_FLAT_NAMESPACE is used on Darwin/MacOSX 26*08b48e0bSAndroid Build Coastguard Worker LD_PRELOAD=../libdislocator.so DYLD_INSERT_LIBRARIES=../libdislocator.so DYLD_FORCE_FLAT_NAMESPACE=1 ./test-compcov BUFFEROVERFLOW > test.out 2>/dev/null 27*08b48e0bSAndroid Build Coastguard Worker } > /dev/null 2>&1 28*08b48e0bSAndroid Build Coastguard Worker grep -q BUFFEROVERFLOW test.out > /dev/null 2>&1 && { 29*08b48e0bSAndroid Build Coastguard Worker $ECHO "$RED[!] libdislocator did not detect the memory corruption" 30*08b48e0bSAndroid Build Coastguard Worker CODE=1 31*08b48e0bSAndroid Build Coastguard Worker } || { 32*08b48e0bSAndroid Build Coastguard Worker $ECHO "$GREEN[+] libdislocator did successfully detect the memory corruption" 33*08b48e0bSAndroid Build Coastguard Worker } 34*08b48e0bSAndroid Build Coastguard Worker rm -f test.out core test-compcov.core core.test-compcov 35*08b48e0bSAndroid Build Coastguard Worker} || { 36*08b48e0bSAndroid Build Coastguard Worker $ECHO "$YELLOW[-] libdislocator is not compiled, cannot test" 37*08b48e0bSAndroid Build Coastguard Worker INCOMPLETE=1 38*08b48e0bSAndroid Build Coastguard Worker} 39*08b48e0bSAndroid Build Coastguard Workerrm -f test-compcov 40*08b48e0bSAndroid Build Coastguard Worker 41*08b48e0bSAndroid Build Coastguard Worker. ./test-post.sh 42