Dongjia "toka" Zhang 62d9485f10
Use symlink instead to get the corpus (#3177)
* a

* add real symlink

* tmate

* corpus

* detmate

---------

Co-authored-by: Skynet 2 <name@domain.example>
2025-04-28 18:47:10 +02:00

114 lines
2.7 KiB
Makefile

import "../../../just/libafl-qemu-libpng.just"
FUZZER_NAME := "qemu_launcher"
HARNESS := TARGET_DIR / ("libpng-harness-" + PROFILE)
[unix]
build:
cargo build \
--profile {{ PROFILE }} \
--features {{ ARCH }} \
--target-dir {{ TARGET_DIR }}
[unix]
harness: libpng
#!/bin/bash
source {{ DOTENV }}
$CROSS_CXX \
./harness.cc \
$CROSS_CFLAGS \
"{{ TARGET_DIR }}/build-png/.libs/libpng16.a" \
"{{ TARGET_DIR }}/build-zlib/libz.a" \
-I"{{ TARGET_DIR }}/build-png" \
-I"{{ DEPS_DIR }}/libpng-1.6.37" \
-I"{{ TARGET_DIR }}/build-zlib/zlib/lib" \
-L"{{ TARGET_DIR }}/build-zlib/zlib/lib" \
-o"{{ HARNESS }}" \
-lm
[unix]
run: harness build
#!/bin/bash
source {{ DOTENV }}
CUSTOM_QASAN_PATH={{ BUILD_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libqasan.so \
{{ FUZZER }} \
--input ./corpus \
--output {{ TARGET_DIR }}/output/ \
--log {{TARGET_DIR}}/output/log.txt \
--cores 0-7 \
--asan-cores 0-3 \
--cmplog-cores 2-5 \
--iterations 1000000 \
--tui \
-- \
{{ HARNESS }}
[unix]
test_inner: harness build
#!/bin/bash
source {{ DOTENV }}
export QEMU_LAUNCHER={{ FUZZER }}
./tests/injection/test.sh || exit 1
# complie again with simple mgr
cargo build --profile={{PROFILE}} --features="simplemgr,{{ARCH}}" --target-dir={{ TARGET_DIR }} || exit 1
export CUSTOM_QASAN_PATH={{ BUILD_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libqasan.so
./tests/qasan/qasan_test.sh || exit 1
export CUSTOM_GASAN_PATH={{ BUILD_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libgasan.so
./tests/qasan/gasan_test.sh || exit 1
[unix]
test:
ARCH=x86_64 just test_inner
single: harness build
{{ FUZZER }} \
--input ./corpus \
--output {{ TARGET_DIR }}/output/ \
--log {{ TARGET_DIR }}/output/log.txt \
--cores 0 \
-- \
{{ HARNESS }}
asan: harness build
#!/bin/bash
source {{ DOTENV }}
CUSTOM_QASAN_PATH={{ BUILD_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libqasan.so \
{{ FUZZER }} \
--input ./corpus \
--output {{ TARGET_DIR }}/output/ \
--log {{ TARGET_DIR }}/output/log.txt \
--cores 0 \
--asan-cores 0 \
-- \
{{ HARNESS }}
asan_guest: harness build
#!/bin/bash
source {{ DOTENV }}
CUSTOM_GASAN_PATH={{ BUILD_DIR }}/$CROSS_TARGET/{{ PROFILE_DIR }}/libgasan.so \
{{ FUZZER }} \
--input ./corpus \
--output {{ TARGET_DIR }}/output/ \
--log {{ TARGET_DIR }}/output/log.txt \
--cores 0 \
--asan-guest-cores 0 \
-- \
{{ HARNESS }}
[unix]
clean:
cargo clean