Commit f19d8d42b5bb77dbdd2d0ab1444813f2c66202c0
1 parent
9a9cd83b
Add fuzz-helper.sh
Showing
1 changed file
with
56 additions
and
0 deletions
fuzz-helper.sh
0 → 100755
| 1 | +#!/bin/bash | ||
| 2 | +# | ||
| 3 | +# Quick 'n dirty Script to build and run FlashMQ with American Fuzzy Lop. | ||
| 4 | + | ||
| 5 | +thisfile=$(readlink --canonicalize "$0") | ||
| 6 | +thisdir=$(dirname "$thisfile") | ||
| 7 | + | ||
| 8 | +if [[ -z "$AFL_ROOT" ]]; then | ||
| 9 | + echo "ERROR: set AFL_ROOT environment variable" | ||
| 10 | + exit 1 | ||
| 11 | +fi | ||
| 12 | + | ||
| 13 | +if [[ -z "$FLASHMQ_SRC" ]]; then | ||
| 14 | + echo "ERROR: set FLASHMQ_SRC environment variable" | ||
| 15 | + exit 1 | ||
| 16 | +fi | ||
| 17 | + | ||
| 18 | +set -u | ||
| 19 | + | ||
| 20 | +if [[ ! -d "$FLASHMQ_SRC/fuzztests" ]]; then | ||
| 21 | + echo "Folder 'fuzztests' not found in '$FLASHMQ_SRC'" | ||
| 22 | + exit 1 | ||
| 23 | +fi | ||
| 24 | + | ||
| 25 | +if [[ "$1" == "build" ]]; then | ||
| 26 | + | ||
| 27 | + export CC="$AFL_ROOT/afl-gcc" | ||
| 28 | + export CXX="$AFL_ROOT/afl-g++" | ||
| 29 | + | ||
| 30 | + mkdir "fuzzbuild" | ||
| 31 | + cd "fuzzbuild" || exit 1 | ||
| 32 | + | ||
| 33 | + "$thisdir/build.sh" Debug | ||
| 34 | + | ||
| 35 | + if [[ -f "./FlashMQBuildDebug/FlashMQ" ]]; then | ||
| 36 | + cp -v "./FlashMQBuildDebug/FlashMQ" .. | ||
| 37 | + fi | ||
| 38 | +fi | ||
| 39 | + | ||
| 40 | +if [[ "$1" == "run" ]]; then | ||
| 41 | + INPUTDIR="$FLASHMQ_SRC/fuzztests" | ||
| 42 | + OUTPUTDIR="fuzzoutput" | ||
| 43 | + BINARY="./FlashMQ" | ||
| 44 | + | ||
| 45 | + if [[ ! -d "$OUTPUTDIR" ]]; then | ||
| 46 | + mkdir "$OUTPUTDIR" | ||
| 47 | + fi | ||
| 48 | + | ||
| 49 | + tmux new-session -s flashmqfuzz -d "'$AFL_ROOT/afl-fuzz' -m 200 -M primary -i '$INPUTDIR' -o '$OUTPUTDIR' '$BINARY' --fuzz-file '@@'; sleep 5" | ||
| 50 | + tmux split-window -t flashmqfuzz -v "'$AFL_ROOT/afl-fuzz' -m 200 -S secondary01 -i '$INPUTDIR' -o '$OUTPUTDIR' '$BINARY' --fuzz-file '@@'; sleep 5" | ||
| 51 | + tmux split-window -t flashmqfuzz -h "'$AFL_ROOT/afl-fuzz' -m 200 -S secondary02 -i '$INPUTDIR' -o '$OUTPUTDIR' '$BINARY' --fuzz-file '@@'; sleep 5" | ||
| 52 | + tmux select-pane -t flashmqfuzz -U | ||
| 53 | + tmux split-window -t flashmqfuzz -h "'$AFL_ROOT/afl-fuzz' -m 200 -S secondary03 -i '$INPUTDIR' -o '$OUTPUTDIR' '$BINARY' --fuzz-file '@@'; sleep 5" | ||
| 54 | + | ||
| 55 | + tmux attach-session -d -t flashmqfuzz | ||
| 56 | +fi |