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