Hex Artifact Content

Artifact cb7694cf17967fddfb7dc563cda6e21a74aff7bb:


0000: 23 21 20 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20  #! /usr/bin/env 
0010: 62 61 73 68 0a 0a 50 41 54 48 3d 22 2f 6f 70 74  bash..PATH="/opt
0020: 2f 61 70 70 66 73 2f 72 6b 65 65 6e 65 2e 6f 72  /appfs/rkeene.or
0030: 67 2f 61 66 6c 2f 70 6c 61 74 66 6f 72 6d 2f 6c  g/afl/platform/l
0040: 61 74 65 73 74 2f 62 69 6e 3a 24 7b 50 41 54 48  atest/bin:${PATH
0050: 3a 2d 2f 64 65 76 2f 6e 75 6c 6c 2f 6e 75 6c 6c  :-/dev/null/null
0060: 7d 22 0a 65 78 70 6f 72 74 20 50 41 54 48 0a 0a  }".export PATH..
0070: 73 65 74 20 2d 65 0a 0a 73 6f 75 72 63 65 64 69  set -e..sourcedi
0080: 72 3d 22 24 28 63 64 20 22 24 28 64 69 72 6e 61  r="$(cd "$(dirna
0090: 6d 65 20 22 24 7b 42 41 53 48 5f 53 4f 55 52 43  me "${BASH_SOURC
00a0: 45 5b 30 5d 7d 22 29 2f 2e 2e 22 20 26 26 20 70  E[0]}")/.." && p
00b0: 77 64 29 22 0a 0a 77 6f 72 6b 64 69 72 3d 27 27  wd)"..workdir=''
00c0: 0a 69 6e 70 75 74 64 69 72 3d 27 27 0a 6f 75 74  .inputdir=''.out
00d0: 70 75 74 64 69 72 3d 27 27 0a 66 75 6e 63 74 69  putdir=''.functi
00e0: 6f 6e 20 63 6c 65 61 6e 75 70 28 29 20 7b 0a 09  on cleanup() {..
00f0: 63 64 20 2f 0a 09 69 66 20 5b 20 2d 6e 20 22 24  cd /..if [ -n "$
0100: 7b 6f 75 74 70 75 74 64 69 72 7d 22 20 2d 61 20  {outputdir}" -a 
0110: 2d 64 20 22 24 7b 6f 75 74 70 75 74 64 69 72 7d  -d "${outputdir}
0120: 22 20 5d 3b 20 74 68 65 6e 0a 09 09 63 70 20 2d  " ]; then...cp -
0130: 72 70 20 22 24 7b 6f 75 74 70 75 74 64 69 72 7d  rp "${outputdir}
0140: 22 20 22 24 7b 73 6f 75 72 63 65 64 69 72 7d 2f  " "${sourcedir}/
0150: 62 75 69 6c 64 2f 61 66 6c 2d 24 28 75 6e 61 6d  build/afl-$(unam
0160: 65 20 2d 6e 20 7c 20 63 75 74 20 2d 66 20 31 20  e -n | cut -f 1 
0170: 2d 64 20 2e 29 2d 24 28 73 74 61 74 20 2d 63 20  -d .)-$(stat -c 
0180: 25 59 20 22 24 7b 6f 75 74 70 75 74 64 69 72 7d  %Y "${outputdir}
0190: 22 29 22 0a 09 66 69 0a 0a 09 69 66 20 5b 20 2d  ")"..fi...if [ -
01a0: 6e 20 22 24 7b 77 6f 72 6b 64 69 72 7d 22 20 5d  n "${workdir}" ]
01b0: 3b 20 74 68 65 6e 0a 09 09 72 6d 20 2d 72 66 20  ; then...rm -rf 
01c0: 22 24 7b 77 6f 72 6b 64 69 72 7d 22 0a 09 09 77  "${workdir}"...w
01d0: 6f 72 6b 64 69 72 3d 27 27 0a 09 66 69 0a 7d 0a  orkdir=''..fi.}.
01e0: 74 72 61 70 20 63 6c 65 61 6e 75 70 20 45 58 49  trap cleanup EXI
01f0: 54 0a 0a 77 6f 72 6b 64 69 72 3d 22 24 28 6d 6b  T..workdir="$(mk
0200: 74 65 6d 70 20 2d 64 29 22 0a 69 6e 70 75 74 64  temp -d)".inputd
0210: 69 72 3d 22 24 7b 77 6f 72 6b 64 69 72 7d 2f 69  ir="${workdir}/i
0220: 6e 70 75 74 22 0a 6f 75 74 70 75 74 64 69 72 3d  nput".outputdir=
0230: 22 24 7b 77 6f 72 6b 64 69 72 7d 2f 6f 75 74 70  "${workdir}/outp
0240: 75 74 22 0a 6d 6b 64 69 72 20 22 24 7b 77 6f 72  ut".mkdir "${wor
0250: 6b 64 69 72 7d 2f 73 72 63 22 0a 0a 63 70 20 2d  kdir}/src"..cp -
0260: 72 20 22 24 7b 73 6f 75 72 63 65 64 69 72 7d 22  r "${sourcedir}"
0270: 2f 2a 20 22 24 7b 77 6f 72 6b 64 69 72 7d 2f 73  /* "${workdir}/s
0280: 72 63 2f 22 0a 0a 28 0a 09 73 65 74 20 2d 65 0a  rc/"..(..set -e.
0290: 0a 09 63 64 20 22 24 7b 77 6f 72 6b 64 69 72 7d  ..cd "${workdir}
02a0: 22 0a 09 6d 6b 64 69 72 20 22 24 7b 69 6e 70 75  "..mkdir "${inpu
02b0: 74 64 69 72 7d 22 20 22 24 7b 6f 75 74 70 75 74  tdir}" "${output
02c0: 64 69 72 7d 22 0a 0a 09 65 63 68 6f 20 24 27 47  dir}"...echo $'G
02d0: 45 54 20 2f 65 74 63 2f 70 61 73 73 77 64 20 48  ET /etc/passwd H
02e0: 54 54 50 2f 31 2e 31 5c 78 30 64 5c 78 30 61 48  TTP/1.1\x0d\x0aH
02f0: 6f 73 74 3a 20 65 78 61 6d 70 6c 65 2e 63 6f 6d  ost: example.com
0300: 5c 78 30 64 5c 78 30 61 5c 78 30 64 5c 78 30 61  \x0d\x0a\x0d\x0a
0310: 27 20 3e 20 69 6e 70 75 74 2f 74 65 73 74 2d 31  ' > input/test-1
0320: 0a 09 65 63 68 6f 20 24 27 47 45 54 20 2f 20 48  ..echo $'GET / H
0330: 54 54 50 2f 31 2e 31 5c 78 30 64 5c 78 30 61 48  TTP/1.1\x0d\x0aH
0340: 6f 73 74 3a 20 65 78 61 6d 70 6c 65 2e 63 6f 6d  ost: example.com
0350: 5c 78 30 64 5c 78 30 61 5c 78 30 64 5c 78 30 61  \x0d\x0a\x0d\x0a
0360: 27 20 3e 20 69 6e 70 75 74 2f 74 65 73 74 2d 32  ' > input/test-2
0370: 0a 09 65 63 68 6f 20 24 27 47 45 54 20 2f 20 48  ..echo $'GET / H
0380: 54 54 50 2f 31 2e 31 5c 78 30 64 5c 78 30 61 48  TTP/1.1\x0d\x0aH
0390: 6f 73 74 3a 5c 78 30 64 5c 78 30 61 5c 78 30 64  ost:\x0d\x0a\x0d
03a0: 5c 78 30 61 27 20 3e 20 69 6e 70 75 74 2f 74 65  \x0a' > input/te
03b0: 73 74 2d 33 0a 0a 09 63 64 20 27 73 72 63 27 0a  st-3...cd 'src'.
03c0: 09 6d 61 6b 65 20 64 69 73 74 63 6c 65 61 6e 0a  .make distclean.
03d0: 09 6d 61 6b 65 20 43 43 3d 61 66 6c 2d 67 63 63  .make CC=afl-gcc
03e0: 20 46 49 4c 45 44 5f 45 58 54 52 41 5f 43 46 4c   FILED_EXTRA_CFL
03f0: 41 47 53 3d 2d 44 46 49 4c 45 44 5f 54 45 53 54  AGS=-DFILED_TEST
0400: 5f 41 46 4c 3d 31 0a 0a 09 23 65 78 70 6f 72 74  _AFL=1...#export
0410: 20 41 46 4c 5f 53 4b 49 50 5f 43 50 55 46 52 45   AFL_SKIP_CPUFRE
0420: 51 3d 31 0a 09 61 66 6c 2d 66 75 7a 7a 20 2d 69  Q=1..afl-fuzz -i
0430: 20 22 24 7b 69 6e 70 75 74 64 69 72 7d 22 20 2d   "${inputdir}" -
0440: 6f 20 22 24 7b 6f 75 74 70 75 74 64 69 72 7d 22  o "${outputdir}"
0450: 20 2d 2d 20 2e 2f 66 69 6c 65 64 0a 29 0a 0a 65   -- ./filed.)..e
0460: 78 69 74 20 30 0a                                xit 0.