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 Worker$ECHO "$BLUE[*] Testing: nyx_mode" 6*08b48e0bSAndroid Build Coastguard Worker 7*08b48e0bSAndroid Build Coastguard Workertest "$CI" = "true" && { 8*08b48e0bSAndroid Build Coastguard Worker $ECHO "$YELLOW[-] nyx_mode cannot be tested in the Github CI, skipping ..." 9*08b48e0bSAndroid Build Coastguard Worker exit 0 10*08b48e0bSAndroid Build Coastguard Worker} 11*08b48e0bSAndroid Build Coastguard Worker 12*08b48e0bSAndroid Build Coastguard Workerunset AFL_CC 13*08b48e0bSAndroid Build Coastguard Worker 14*08b48e0bSAndroid Build Coastguard Workertest -e ../libnyx.so && { 15*08b48e0bSAndroid Build Coastguard Worker ../afl-cc -o test-instr ../test-instr.c > errors 2>&1 16*08b48e0bSAndroid Build Coastguard Worker test -e test-instr && { 17*08b48e0bSAndroid Build Coastguard Worker { 18*08b48e0bSAndroid Build Coastguard Worker rm -rf nyx-test in out 19*08b48e0bSAndroid Build Coastguard Worker $ECHO "$GREY[*] running nyx_packer" 20*08b48e0bSAndroid Build Coastguard Worker python3 ../nyx_mode/packer/packer/nyx_packer.py \ 21*08b48e0bSAndroid Build Coastguard Worker ./test-instr \ 22*08b48e0bSAndroid Build Coastguard Worker nyx-test \ 23*08b48e0bSAndroid Build Coastguard Worker afl \ 24*08b48e0bSAndroid Build Coastguard Worker instrumentation \ 25*08b48e0bSAndroid Build Coastguard Worker --fast_reload_mode \ 26*08b48e0bSAndroid Build Coastguard Worker --purge > /dev/null 2>&1 27*08b48e0bSAndroid Build Coastguard Worker 28*08b48e0bSAndroid Build Coastguard Worker test -e nyx-test/test-instr && { 29*08b48e0bSAndroid Build Coastguard Worker 30*08b48e0bSAndroid Build Coastguard Worker $ECHO "$GREY[*] running nyx_config_gen" 31*08b48e0bSAndroid Build Coastguard Worker python3 ../nyx_mode/packer/packer/nyx_config_gen.py nyx-test Kernel > /dev/null 2>&1 32*08b48e0bSAndroid Build Coastguard Worker 33*08b48e0bSAndroid Build Coastguard Worker test -e nyx-test/config.ron && { 34*08b48e0bSAndroid Build Coastguard Worker sudo modprobe -r kvm-intel 35*08b48e0bSAndroid Build Coastguard Worker sudo modprobe -r kvm 36*08b48e0bSAndroid Build Coastguard Worker sudo modprobe kvm enable_vmware_backdoor=y 37*08b48e0bSAndroid Build Coastguard Worker sudo modprobe kvm-intel 38*08b48e0bSAndroid Build Coastguard Worker #cat /sys/module/kvm/parameters/enable_vmware_backdoor 39*08b48e0bSAndroid Build Coastguard Worker 40*08b48e0bSAndroid Build Coastguard Worker mkdir -p in 41*08b48e0bSAndroid Build Coastguard Worker echo 00000 > in/in 42*08b48e0bSAndroid Build Coastguard Worker $ECHO "$GREY[*] running afl-fuzz for nyx_mode, this will take approx 10 seconds" 43*08b48e0bSAndroid Build Coastguard Worker { 44*08b48e0bSAndroid Build Coastguard Worker AFL_DEBUG=1 ../afl-fuzz -i in -o out -V05 -X -- ./nyx-test >>errors 2>&1 45*08b48e0bSAndroid Build Coastguard Worker } >>errors 2>&1 46*08b48e0bSAndroid Build Coastguard Worker test -n "$( ls out/default/queue/id:000002* 2>/dev/null )" && { 47*08b48e0bSAndroid Build Coastguard Worker $ECHO "$GREEN[+] afl-fuzz is working correctly with nyx_mode" 48*08b48e0bSAndroid Build Coastguard Worker RUNTIME=`grep execs_done out/default/fuzzer_stats | awk '{print$3}'` 49*08b48e0bSAndroid Build Coastguard Worker rm -rf errors nyx-test test-instr in out 50*08b48e0bSAndroid Build Coastguard Worker } || { 51*08b48e0bSAndroid Build Coastguard Worker echo CUT------------------------------------------------------------------CUT 52*08b48e0bSAndroid Build Coastguard Worker cat errors 53*08b48e0bSAndroid Build Coastguard Worker echo CUT------------------------------------------------------------------CUT 54*08b48e0bSAndroid Build Coastguard Worker $ECHO "$RED[!] afl-fuzz is not working correctly with nyx_mode" 55*08b48e0bSAndroid Build Coastguard Worker CODE=1 56*08b48e0bSAndroid Build Coastguard Worker } 57*08b48e0bSAndroid Build Coastguard Worker } || { 58*08b48e0bSAndroid Build Coastguard Worker $ECHO "$RED[!] nyx_packer failed, likely install requirements not met." 59*08b48e0bSAndroid Build Coastguard Worker CODE=1 60*08b48e0bSAndroid Build Coastguard Worker } 61*08b48e0bSAndroid Build Coastguard Worker } || { 62*08b48e0bSAndroid Build Coastguard Worker $ECHO "$RED[!] nyx_packer failed, likely install requirements not met." 63*08b48e0bSAndroid Build Coastguard Worker CODE=1 64*08b48e0bSAndroid Build Coastguard Worker } 65*08b48e0bSAndroid Build Coastguard Worker #rm -rf test-instr in out errors nyx-test 66*08b48e0bSAndroid Build Coastguard Worker } 67*08b48e0bSAndroid Build Coastguard Worker } || { 68*08b48e0bSAndroid Build Coastguard Worker echo CUT------------------------------------------------------------------CUT 69*08b48e0bSAndroid Build Coastguard Worker cat errors 70*08b48e0bSAndroid Build Coastguard Worker echo CUT------------------------------------------------------------------CUT 71*08b48e0bSAndroid Build Coastguard Worker $ECHO "$RED[!] afl-cc compilation of test targets failed - what is going on??" 72*08b48e0bSAndroid Build Coastguard Worker CODE=1 73*08b48e0bSAndroid Build Coastguard Worker } 74*08b48e0bSAndroid Build Coastguard Worker} || { 75*08b48e0bSAndroid Build Coastguard Worker $ECHO "$YELLOW[-] nyx_mode is not compiled, cannot test" 76*08b48e0bSAndroid Build Coastguard Worker INCOMPLETE=1 77*08b48e0bSAndroid Build Coastguard Worker} 78*08b48e0bSAndroid Build Coastguard Worker 79*08b48e0bSAndroid Build Coastguard Worker. ./test-post.sh 80