
* move to just * fuzzbench * shell check * version * rme * fixer * fixing * libpng friends * pwd * ps * ps * no fail fast.. for now * windows * l * no powershell * a * fk * fixer * a * Revert "fixer" This reverts commit 76ae72d68686ead01ef914b658c5d8dac5aaee32. * plzplz * aaaa * aa * aa * use absolute path, use LIBAFL_CC and LIBAFL_CXX * why tabs???? * this job is not fun * aa * tmate debug * disable cacheing * del * deldelg * rename * aaaa * lol * aaa * lol * lol * 2nd tmate ... * a * lol * lll * shell ck * please i'm about to cry --------- Co-authored-by: Your Name <you@example.com> Co-authored-by: Romain Malmain <romain.malmain@pm.me>
76 lines
1.8 KiB
Makefile
76 lines
1.8 KiB
Makefile
FUZZER_NAME := 'fuzzer_libafl_cc'
|
|
FORKSERVER_NAME := 'forkserver_libafl_cc'
|
|
CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target")
|
|
PROFILE := env("PROFILE", "release")
|
|
PROFILE_DIR := if PROFILE == "release" { "release" } else if PROFILE == "dev" { "debug" } else { "debug" }
|
|
LIBAFL_CC := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cc"
|
|
LIBAFL_CXX := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / "libafl_cxx"
|
|
FUZZER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME
|
|
FORKSERVER := PROJECT_DIR / CARGO_TARGET_DIR / PROFILE_DIR / FORKSERVER_NAME
|
|
PROJECT_DIR := absolute_path(".")
|
|
|
|
|
|
alias cc := cxx
|
|
|
|
[linux]
|
|
[macos]
|
|
libpng:
|
|
#!/bin/bash
|
|
if [ ! -f v1.6.37.tar.gz ]; then
|
|
wget https://github.com/glennrp/libpng/archive/refs/tags/v1.6.37.tar.gz
|
|
fi
|
|
tar -xvf v1.6.37.tar.gz
|
|
|
|
[windows]
|
|
libpng:
|
|
echo "Unsupported on this platform"
|
|
|
|
[linux]
|
|
[macos]
|
|
cxx:
|
|
cargo build --profile {{PROFILE}}
|
|
|
|
[windows]
|
|
cxx:
|
|
echo "Unsupported on this platform"
|
|
|
|
[linux]
|
|
[macos]
|
|
fuzzer: cxx
|
|
{{LIBAFL_CC}} {{PROJECT_DIR}}/src/program.c -o {{FUZZER_NAME}} -lm -lz
|
|
|
|
[windows]
|
|
fuzzer:
|
|
echo "Unsupported on this platform"
|
|
|
|
[linux]
|
|
[macos]
|
|
run: fuzzer
|
|
#!/bin/bash
|
|
taskset -c 1 {{FORKSERVER}} ./{{FUZZER_NAME}} ./corpus/ -t 1000
|
|
|
|
[windows]
|
|
run: fuzzer
|
|
echo "Unsupported on this platform"
|
|
|
|
[linux]
|
|
[macos]
|
|
test: fuzzer
|
|
#!/bin/bash
|
|
timeout 30s {{FORKSERVER}} ./{{FUZZER_NAME}} ./corpus/ -t 1000 | tee fuzz_stdout.log || true
|
|
if grep -qa "objectives: 1" fuzz_stdout.log; then
|
|
echo "Fuzzer is working"
|
|
else
|
|
echo "Fuzzer does not generate any testcases or any crashes"
|
|
exit 1
|
|
fi
|
|
|
|
[windows]
|
|
test: fuzzer
|
|
echo "Unsupported on this platform"
|
|
|
|
clean:
|
|
rm -rf {{FUZZER_NAME}}
|
|
make -C libpng-1.6.37 clean || true
|
|
cargo clean
|