* endif

* just fix every profile

* WHY YOU DONT JUST USE THE SAME NAME FOR DIR

* fix

* Some fuzzer want release

* WHY I ALWAYS FORGET COMMA

* NO MORE SPACE

* rename

* stb doesn't like debug build

* just use release

* another just use release
This commit is contained in:
Dongjia "toka" Zhang 2023-09-27 09:59:55 +02:00 committed by GitHub
parent 74435e1461
commit 324db072a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 203 additions and 161 deletions

View File

@ -196,9 +196,22 @@ jobs:
- name: Remove Dotnet (macOS) - name: Remove Dotnet (macOS)
if: runner.os == 'macOS' if: runner.os == 'macOS'
run: rm -rf /usr/local/bin/dotnet run: rm -rf /usr/local/bin/dotnet
- name: Remove Dotnet & Haskell (Linux) - name: Free Disk Space (Ubuntu)
if: runner.os == 'Linux' if: runner.os == 'Linux'
run: rm -rf /usr/share/dotnet && rm -rf /opt/ghc uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- name: Add nightly rustfmt and clippy - name: Add nightly rustfmt and clippy
run: rustup toolchain install nightly --component rustfmt --component clippy --allow-downgrade run: rustup toolchain install nightly --component rustfmt --component clippy --allow-downgrade
- name: Add no_std toolchain - name: Add no_std toolchain

View File

@ -3,24 +3,25 @@
FUZZER_NAME='fuzzer_sd' FUZZER_NAME='fuzzer_sd'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release" }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release" }
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
# Compilers # Compilers
[tasks.cc] [tasks.cc]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--bin", "libafl_cc"] args = ["build" , "--profile", "${PROFILE}", "--bin", "libafl_cc"]
# Harness # Harness
[tasks.fuzzer] [tasks.fuzzer]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--bin", "${FUZZER_NAME}"] args = ["build" , "--profile", "${PROFILE}", "--bin", "${FUZZER_NAME}"]
dependencies = [ "cc" ] dependencies = [ "cc" ]
# Run the fuzzer # Run the fuzzer
[tasks.run] [tasks.run]
command = "${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}"
dependencies = [ "fuzzer" ] dependencies = [ "fuzzer" ]
# Test # Test
@ -32,7 +33,7 @@ windows_alias = "unsupported"
[tasks.test_unix] [tasks.test_unix]
script_runner = "@shell" script_runner = "@shell"
script=''' script='''
timeout 10s ${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME} >fuzz_stdout.log || true timeout 10s ${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME} >fuzz_stdout.log || true
if [ -z "$(grep "objectives: 1" fuzz_stdout.log)" ]; then if [ -z "$(grep "objectives: 1" fuzz_stdout.log)" ]; then
echo "Fuzzer does not generate any testcases or any crashes" echo "Fuzzer does not generate any testcases or any crashes"
exit 1 exit 1

View File

@ -2,6 +2,7 @@
FUZZER_NAME="fuzzer" FUZZER_NAME="fuzzer"
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -12,7 +13,7 @@ echo "Cargo-make not integrated yet on this"
# Fuzzer # Fuzzer
[tasks.build] [tasks.build]
command = "cargo" command = "cargo"
args = ["build", "--${PROFILE}", "-Zbuild-std=core,alloc", "--target", "x86_64-unknown-linux-gnu"] args = ["build", "--profile", "${PROFILE}", "-Zbuild-std=core,alloc", "--target", "x86_64-unknown-linux-gnu"]
# Test # Test
[tasks.test] [tasks.test]
@ -27,7 +28,7 @@ cargo run -Zbuild-std=core,alloc --target x86_64-unknown-linux-gnu || true
dependencies = ["build"] dependencies = ["build"]
[tasks.build_aarch] [tasks.build_aarch]
script = "cargo +nightly build -Zbuild-std=core,alloc --target aarch64-unknown-none -v --${PROFILE}" script = "cargo +nightly build -Zbuild-std=core,alloc --target aarch64-unknown-none -v --profile ${PROFILE}"
# Clean # Clean
[tasks.clean] [tasks.clean]

View File

@ -3,9 +3,10 @@
FUZZER_NAME='fuzzer_libafl_cc' FUZZER_NAME='fuzzer_libafl_cc'
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
[tasks.unsupported] [tasks.unsupported]
@ -22,7 +23,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile","${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -31,7 +32,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.crash_cxx] [tasks.crash_cxx]
linux_alias = "crash_cxx_unix" linux_alias = "crash_cxx_unix"
@ -40,7 +41,7 @@ windows_alias = "unsupported"
[tasks.crash_cxx_unix] [tasks.crash_cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--features=crash"] args = ["build" , "--profile", "${PROFILE}", "--features=crash"]
[tasks.crash_cc] [tasks.crash_cc]
linux_alias = "crash_cc_unix" linux_alias = "crash_cc_unix"
@ -49,7 +50,7 @@ windows_alias = "unsupported"
[tasks.crash_cc_unix] [tasks.crash_cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--features=crash"] args = ["build" , "--profile", "${PROFILE}", "--features=crash"]
# Harness # Harness
[tasks.fuzzer] [tasks.fuzzer]
@ -58,7 +59,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc"
args = ["${PROJECT_DIR}/src/program.c", "-o", "${FUZZER_NAME}", "-lm"] args = ["${PROJECT_DIR}/src/program.c", "-o", "${FUZZER_NAME}", "-lm"]
dependencies = [ "cxx", "cc" ] dependencies = [ "cxx", "cc" ]
@ -69,7 +70,7 @@ mac_alias = "fuzzer_crash_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_crash_unix] [tasks.fuzzer_crash_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc"
args = ["${PROJECT_DIR}/src/program.c", "-o", "${FUZZER_NAME}_crash", "-lm"] args = ["${PROJECT_DIR}/src/program.c", "-o", "${FUZZER_NAME}_crash", "-lm"]
dependencies = [ "crash_cxx", "crash_cc" ] dependencies = [ "crash_cxx", "crash_cc" ]
@ -82,7 +83,7 @@ windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
script_runner = "@shell" script_runner = "@shell"
script=''' script='''
taskset -c 1 ${CARGO_TARGET_DIR}/${PROFILE}/${CARGO_MAKE_PROJECT_NAME} ./${FUZZER_NAME} ./corpus/ -t 1000 taskset -c 1 ${CARGO_TARGET_DIR}/${PROFILE_DIR}/${CARGO_MAKE_PROJECT_NAME} ./${FUZZER_NAME} ./corpus/ -t 1000
''' '''
dependencies = [ "fuzzer" ] dependencies = [ "fuzzer" ]
@ -96,7 +97,7 @@ windows_alias = "unsupported"
[tasks.crash_unix] [tasks.crash_unix]
script_runner = "@shell" script_runner = "@shell"
script=''' script='''
taskset -c 1 ${CARGO_TARGET_DIR}/${PROFILE}/${CARGO_MAKE_PROJECT_NAME} ./${FUZZER_NAME}_crash ./corpus/ -t 1000 taskset -c 1 ${CARGO_TARGET_DIR}/${PROFILE_DIR}/${CARGO_MAKE_PROJECT_NAME} ./${FUZZER_NAME}_crash ./corpus/ -t 1000
''' '''
dependencies = [ "fuzzer_crash" ] dependencies = [ "fuzzer_crash" ]

View File

@ -2,6 +2,7 @@
[env] [env]
CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -61,7 +62,7 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
script_runner="@shell" script_runner="@shell"
script=''' script='''
cargo build --${PROFILE} cargo build --profile ${PROFILE}
''' '''
# Run the fuzzer # Run the fuzzer
@ -73,7 +74,7 @@ windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
script_runner = "@shell" script_runner = "@shell"
script=''' script='''
LD_PRELOAD=$CARGO_TARGET_DIR/${PROFILE}/libfrida_executable_fuzzer.so ./libpng-harness -i corpus -o out -H ./libpng-harness LD_PRELOAD=$CARGO_TARGET_DIR/${PROFILE_DIR}/libfrida_executable_fuzzer.so ./libpng-harness -i corpus -o out -H ./libpng-harness
''' '''
dependencies = [ "fuzzer", "harness" ] dependencies = [ "fuzzer", "harness" ]
@ -87,7 +88,7 @@ windows_alias = "unsupported"
script_runner = "@shell" script_runner = "@shell"
script=''' script='''
rm -rf libafl_unix_shmem_server || true rm -rf libafl_unix_shmem_server || true
LD_PRELOAD=$CARGO_TARGET_DIR/${PROFILE}/libfrida_executable_fuzzer.so ./libpng-harness -i corpus -o out -H ./libpng-harness > fuzz_stdout.log & LD_PRELOAD=$CARGO_TARGET_DIR/${PROFILE_DIR}/libfrida_executable_fuzzer.so ./libpng-harness -i corpus -o out -H ./libpng-harness > fuzz_stdout.log &
sleep 10s && pkill libpng-harness sleep 10s && pkill libpng-harness
if [ -z "$(grep "corpus: 30" fuzz_stdout.log)" ]; then if [ -z "$(grep "corpus: 30" fuzz_stdout.log)" ]; then
echo "Fuzzer does not generate any testcases or any crashes" echo "Fuzzer does not generate any testcases or any crashes"

View File

@ -3,6 +3,7 @@
CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
FUZZER_NAME={ source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "frida_gdiplus", mapping = {"linux" = "frida_gdiplus", "macos" = "frida_gdiplus", "windows" = "frida_gdiplus.exe"} } FUZZER_NAME={ source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "frida_gdiplus", mapping = {"linux" = "frida_gdiplus", "macos" = "frida_gdiplus", "windows" = "frida_gdiplus.exe"} }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -32,8 +33,8 @@ windows_alias = "fuzzer_windows"
[tasks.fuzzer_windows] [tasks.fuzzer_windows]
script_runner="@shell" script_runner="@shell"
script=''' script='''
cargo build --${PROFILE} cargo build --profile ${PROFILE}
cp ./target/${PROFILE}/${FUZZER_NAME} . cp ./target/${PROFILE_DIR}/${FUZZER_NAME} .
''' '''
# Run the fuzzer # Run the fuzzer

View File

@ -3,6 +3,7 @@
CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
FUZZER_NAME={ source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "frida_fuzzer", mapping = {"linux" = "frida_fuzzer", "macos" = "frida_fuzzer", "windows" = "frida_fuzzer.exe"} } FUZZER_NAME={ source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "frida_fuzzer", mapping = {"linux" = "frida_fuzzer", "macos" = "frida_fuzzer", "windows" = "frida_fuzzer.exe"} }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -68,15 +69,15 @@ windows_alias = "fuzzer_windows"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
script_runner="@shell" script_runner="@shell"
script=''' script='''
cargo build --${PROFILE} cargo build --profile ${PROFILE}
cp ${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME} . cp ${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME} .
''' '''
[tasks.fuzzer_windows] [tasks.fuzzer_windows]
script_runner="@shell" script_runner="@shell"
script=''' script='''
cargo build --${PROFILE} cargo build --profile ${PROFILE}
cp ./target/${PROFILE}/${FUZZER_NAME} . cp ./target/${PROFILE_DIR}/${FUZZER_NAME} .
''' '''
# Run the fuzzer # Run the fuzzer

View File

@ -3,6 +3,7 @@ PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
FUZZER_NAME="fuzzer" FUZZER_NAME="fuzzer"
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -18,7 +19,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build", "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -27,7 +28,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build", "--profile", "${PROFILE}"]
# fuzz.o File # fuzz.o File
[tasks.fuzz_o] [tasks.fuzz_o]
@ -36,7 +37,7 @@ mac_alias = "fuzz_o_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzz_o_unix] [tasks.fuzz_o_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc"
args = ["--libafl-no-link", "-O3", "-c", "fuzz.c", "-o", "fuzz.o"] args = ["--libafl-no-link", "-O3", "-c", "fuzz.c", "-o", "fuzz.o"]
dependencies = ["cc", "cxx"] dependencies = ["cc", "cxx"]
@ -47,7 +48,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["--libafl", "fuzz.o", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["--libafl", "fuzz.o", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = ["cc", "cxx", "fuzz_o"] dependencies = ["cc", "cxx", "fuzz_o"]

View File

@ -3,6 +3,7 @@
FUZZER_NAME='libpng_harness' FUZZER_NAME='libpng_harness'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -32,7 +33,7 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "cargo" command = "cargo"
args = ["build", "--${PROFILE}"] args = ["build", "--profile", "${PROFILE}"]
# Harness # Harness
[tasks.harness] [tasks.harness]
@ -66,7 +67,7 @@ windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
command = "cargo" command = "cargo"
args = ["run", "--${PROFILE}", "./${FUZZER_NAME}", "--", "--libafl-in", "../libfuzzer_libpng/corpus", "--libafl-out", "./out", "./${FUZZER_NAME}"] args = ["run", "--profile", "${PROFILE_DIR}", "./${FUZZER_NAME}", "--", "--libafl-in", "../libfuzzer_libpng/corpus", "--libafl-out", "./out", "./${FUZZER_NAME}"]
dependencies = [ "harness", "fuzzer" ] dependencies = [ "harness", "fuzzer" ]
# Run the fuzzer # Run the fuzzer

View File

@ -3,6 +3,7 @@
FUZZER_NAME='libpng_harness' FUZZER_NAME='libpng_harness'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -32,7 +33,7 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "cargo" command = "cargo"
args = ["build", "--${PROFILE}"] args = ["build", "--profile", "${PROFILE}"]
# Harness # Harness
[tasks.harness] [tasks.harness]
@ -66,7 +67,7 @@ windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
command = "cargo" command = "cargo"
args = ["run", "--${PROFILE}", "./${FUZZER_NAME}", "--", "--libafl-in", "../libfuzzer_libpng/corpus", "--libafl-out", "./out", "./${FUZZER_NAME}"] args = ["run", "--profile", "${PROFILE}", "./${FUZZER_NAME}", "--", "--libafl-in", "../libfuzzer_libpng/corpus", "--libafl-out", "./out", "./${FUZZER_NAME}"]
dependencies = [ "harness", "fuzzer" ] dependencies = [ "harness", "fuzzer" ]
# Run the fuzzer # Run the fuzzer

View File

@ -3,6 +3,7 @@ PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
FUZZER_NAME="fuzzer" FUZZER_NAME="fuzzer"
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -18,7 +19,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -27,7 +28,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
# fuzz.o File # fuzz.o File
[tasks.fuzz_o] [tasks.fuzz_o]
@ -36,7 +37,7 @@ mac_alias = "fuzz_o_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzz_o_unix] [tasks.fuzz_o_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc"
args = ["--libafl-no-link", "-O3", "-c", "fuzz.c", "-o", "fuzz.o"] args = ["--libafl-no-link", "-O3", "-c", "fuzz.c", "-o", "fuzz.o"]
dependencies = ["cc", "cxx"] dependencies = ["cc", "cxx"]
@ -47,7 +48,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["--libafl", "fuzz.o", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["--libafl", "fuzz.o", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = ["cc", "cxx", "fuzz_o"] dependencies = ["cc", "cxx", "fuzz_o"]

View File

@ -3,9 +3,10 @@
FUZZER_NAME='fuzzer_mozjpeg' FUZZER_NAME='fuzzer_mozjpeg'
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
[tasks.unsupported] [tasks.unsupported]
@ -36,7 +37,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -45,7 +46,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -69,7 +70,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/mozjpeg-4.0.3/libjpeg.a", "${PROJECT_DIR}/mozjpeg-4.0.3/libturbojpeg.a", "-I", "${PROJECT_DIR}/mozjpeg-4.0.3/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/mozjpeg-4.0.3/libjpeg.a", "${PROJECT_DIR}/mozjpeg-4.0.3/libturbojpeg.a", "-I", "${PROJECT_DIR}/mozjpeg-4.0.3/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]

View File

@ -4,9 +4,10 @@ FUZZER_NAME='fuzzer_libpng'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -36,7 +37,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -45,7 +46,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.crash_cxx] [tasks.crash_cxx]
linux_alias = "crash_cxx_unix" linux_alias = "crash_cxx_unix"
@ -54,7 +55,7 @@ windows_alias = "unsupported"
[tasks.crash_cxx_unix] [tasks.crash_cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--features=crash"] args = ["build" , "--profile", "${PROFILE}", "--features=crash"]
[tasks.crash_cc] [tasks.crash_cc]
linux_alias = "crash_cc_unix" linux_alias = "crash_cc_unix"
@ -63,7 +64,7 @@ windows_alias = "unsupported"
[tasks.crash_cc_unix] [tasks.crash_cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--features=crash"] args = ["build" , "--profile", "${PROFILE}", "--features=crash"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -76,7 +77,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "cxx", "cc" ] dependencies = [ "libpng", "cxx", "cc" ]
@ -91,7 +92,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "crash_cxx", "crash_cc" ] dependencies = [ "libpng", "crash_cxx", "crash_cc" ]
@ -102,7 +103,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]
@ -113,7 +114,7 @@ mac_alias = "fuzzer_crash_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_crash_unix] [tasks.fuzzer_crash_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}_crash", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}_crash", "-lm", "-lz"]
dependencies = [ "crash_lib", "crash_cxx", "crash_cc" ] dependencies = [ "crash_lib", "crash_cxx", "crash_cc" ]

View File

@ -2,10 +2,11 @@
[env] [env]
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
FUZZER_NAME='fuzzer_libpng_accounting' FUZZER_NAME='fuzzer_libpng_accounting'
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
[tasks.unsupported] [tasks.unsupported]
@ -36,7 +37,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -45,7 +46,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -58,7 +59,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "cxx", "cc" ] dependencies = [ "libpng", "cxx", "cc" ]
@ -70,7 +71,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]

View File

@ -4,9 +4,10 @@ FUZZER_NAME='fuzzer_libpng'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target"} CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target"}
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -36,7 +37,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -45,7 +46,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.crash_cxx] [tasks.crash_cxx]
linux_alias = "crash_cxx_unix" linux_alias = "crash_cxx_unix"
@ -54,7 +55,7 @@ windows_alias = "unsupported"
[tasks.crash_cxx_unix] [tasks.crash_cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--features=crash"] args = ["build" , "--profile", "${PROFILE}", "--features=crash"]
[tasks.crash_cc] [tasks.crash_cc]
linux_alias = "crash_cc_unix" linux_alias = "crash_cc_unix"
@ -63,7 +64,7 @@ windows_alias = "unsupported"
[tasks.crash_cc_unix] [tasks.crash_cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--features=crash"] args = ["build" , "--profile", "${PROFILE}", "--features=crash"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -76,7 +77,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "cxx", "cc" ] dependencies = [ "libpng", "cxx", "cc" ]
@ -91,7 +92,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "crash_cxx", "crash_cc" ] dependencies = [ "libpng", "crash_cxx", "crash_cc" ]
@ -102,7 +103,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]
@ -113,7 +114,7 @@ mac_alias = "fuzzer_crash_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_crash_unix] [tasks.fuzzer_crash_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}_crash", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}_crash", "-lm", "-lz"]
dependencies = [ "crash_lib", "crash_cxx", "crash_cc" ] dependencies = [ "crash_lib", "crash_cxx", "crash_cc" ]

View File

@ -3,9 +3,10 @@
FUZZER_NAME='fuzzer_libpng_launcher' FUZZER_NAME='fuzzer_libpng_launcher'
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
[tasks.unsupported] [tasks.unsupported]
@ -36,7 +37,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -45,7 +46,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -58,7 +59,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "cxx", "cc" ] dependencies = [ "libpng", "cxx", "cc" ]
@ -70,7 +71,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]

View File

@ -4,9 +4,10 @@ FUZZER_NAME='fuzzer_libpng'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -36,7 +37,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -45,7 +46,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.crash_cxx] [tasks.crash_cxx]
linux_alias = "crash_cxx_unix" linux_alias = "crash_cxx_unix"
@ -54,7 +55,7 @@ windows_alias = "unsupported"
[tasks.crash_cxx_unix] [tasks.crash_cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--features=crash"] args = ["build" , "--profile", "${PROFILE}", "--features=crash"]
[tasks.crash_cc] [tasks.crash_cc]
linux_alias = "crash_cc_unix" linux_alias = "crash_cc_unix"
@ -63,7 +64,7 @@ windows_alias = "unsupported"
[tasks.crash_cc_unix] [tasks.crash_cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--features=crash"] args = ["build" , "--profile", "${PROFILE}", "--features=crash"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -76,7 +77,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "cxx", "cc" ] dependencies = [ "libpng", "cxx", "cc" ]
@ -91,7 +92,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "crash_cxx", "crash_cc" ] dependencies = [ "libpng", "crash_cxx", "crash_cc" ]
@ -102,7 +103,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]
@ -113,7 +114,7 @@ mac_alias = "fuzzer_crash_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_crash_unix] [tasks.fuzzer_crash_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}_crash", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}_crash", "-lm", "-lz"]
dependencies = [ "crash_lib", "crash_cxx", "crash_cc" ] dependencies = [ "crash_lib", "crash_cxx", "crash_cc" ]

View File

@ -4,9 +4,10 @@ FUZZER_NAME='fuzzer_libpng_ctx'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -36,7 +37,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -45,7 +46,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -58,7 +59,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "cxx", "cc" ] dependencies = [ "libpng", "cxx", "cc" ]
@ -70,7 +71,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]

View File

@ -3,10 +3,11 @@
FUZZER_NAME='fuzzer_libpng_launcher' FUZZER_NAME='fuzzer_libpng_launcher'
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx'
LIBAFL_LIBTOOL = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_libtool' LIBAFL_LIBTOOL = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_libtool'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
[tasks.unsupported] [tasks.unsupported]
@ -37,7 +38,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -46,7 +47,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -59,7 +60,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" LIBTOOL=${CARGO_TARGET_DIR}/${PROFILE}/libafl_libtool make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx" LIBTOOL=${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_libtool
''' '''
dependencies = [ "libpng", "cxx", "cc" ] dependencies = [ "libpng", "cxx", "cc" ]
@ -71,7 +72,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]

View File

@ -3,9 +3,10 @@
FUZZER_NAME='fuzzer_libpng_launcher' FUZZER_NAME='fuzzer_libpng_launcher'
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
[tasks.unsupported] [tasks.unsupported]
@ -36,7 +37,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -45,7 +46,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -58,7 +59,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "cxx", "cc" ] dependencies = [ "libpng", "cxx", "cc" ]
@ -70,7 +71,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]

View File

@ -4,9 +4,10 @@ FUZZER_NAME='fuzzer_libpng'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -36,7 +37,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -45,7 +46,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.crash_cxx] [tasks.crash_cxx]
linux_alias = "crash_cxx_unix" linux_alias = "crash_cxx_unix"
@ -54,7 +55,7 @@ windows_alias = "unsupported"
[tasks.crash_cxx_unix] [tasks.crash_cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--features=crash"] args = ["build" , "--profile", "${PROFILE}", "--features=crash"]
[tasks.crash_cc] [tasks.crash_cc]
linux_alias = "crash_cc_unix" linux_alias = "crash_cc_unix"
@ -63,7 +64,7 @@ windows_alias = "unsupported"
[tasks.crash_cc_unix] [tasks.crash_cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}", "--features=crash"] args = ["build" , "--profile", "${PROFILE}", "--features=crash"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -76,7 +77,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "cxx", "cc" ] dependencies = [ "libpng", "cxx", "cc" ]
@ -91,7 +92,7 @@ script_runner="@shell"
script=''' script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "crash_cxx", "crash_cc" ] dependencies = [ "libpng", "crash_cxx", "crash_cc" ]
@ -102,7 +103,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]
@ -113,7 +114,7 @@ mac_alias = "fuzzer_crash_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_crash_unix] [tasks.fuzzer_crash_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}_crash", "-lm", "-lz"] args = ["${PROJECT_DIR}/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}_crash", "-lm", "-lz"]
dependencies = [ "crash_lib", "crash_cxx", "crash_cc" ] dependencies = [ "crash_lib", "crash_cxx", "crash_cc" ]

View File

@ -3,28 +3,29 @@
FUZZER_NAME='libfuzzer_stb_image' FUZZER_NAME='libfuzzer_stb_image'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release" }
LIBAFL_CC = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc', mapping = {"windows" = '.\\target\\${PROFILE}\\libafl_cc.exe'} } PROFILE_DIR = {value = "release" }
LIBAFL_CXX = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx', mapping = {"windows" = '.\\target\\${PROFILE}\\libafl_cxx.exe'} } LIBAFL_CC = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc', mapping = {"windows" = '.\\target\\${PROFILE_DIR}\\libafl_cc.exe'} }
FUZZER = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/${PROFILE}/libfuzzer_stb_image', mapping = {"windows" = '.\\target\\${PROFILE}\\libfuzzer_stb_image.exe'} } LIBAFL_CXX = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx', mapping = {"windows" = '.\\target\\${PROFILE_DIR}\\libafl_cxx.exe'} }
FUZZER = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libfuzzer_stb_image', mapping = {"windows" = '.\\target\\${PROFILE_DIR}\\libfuzzer_stb_image.exe'} }
# Compilers # Compilers
[tasks.cxx] [tasks.cxx]
condition = { files_not_exist = ["${LIBAFL_CXX}"] } condition = { files_not_exist = ["${LIBAFL_CXX}"] }
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
condition = { files_not_exist = ["${LIBAFL_CC}"] } condition = { files_not_exist = ["${LIBAFL_CC}"] }
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
# Build the fuzzer # Build the fuzzer
[tasks.fuzzer] [tasks.fuzzer]
script_runner="@shell" script_runner="@shell"
script=''' script='''
cargo build --${PROFILE} cargo build --profile ${PROFILE}
cp ${FUZZER} . cp ${FUZZER} .
''' '''
dependencies = ["cc", "cxx"] dependencies = ["cc", "cxx"]

View File

@ -2,7 +2,8 @@
[env] [env]
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release" }
PROFILE_DIR = {value = "release" }
FUZZER_NAME='libfuzzer_stb_image_concolic' FUZZER_NAME='libfuzzer_stb_image_concolic'
# Compilers # Compilers
@ -16,7 +17,7 @@ condition = { files_not_exist = ["${CARGO_TARGET_DIR}/libSymRuntime.so"] }
script_runner = "@shell" script_runner = "@shell"
script = ''' script = '''
cd runtime cd runtime
cargo build --${PROFILE} cargo build --profile ${PROFILE}
''' '''
# Build the fuzzer # Build the fuzzer
@ -30,7 +31,7 @@ dependencies = ["runtime"]
script_runner = "@shell" script_runner = "@shell"
script = ''' script = '''
cd fuzzer cd fuzzer
cargo build --${PROFILE} cargo build --profile ${PROFILE}
''' '''
[tasks.test] [tasks.test]

View File

@ -3,28 +3,29 @@
FUZZER_NAME='libfuzzer_stb_image_sugar' FUZZER_NAME='libfuzzer_stb_image_sugar'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release" }
LIBAFL_CC = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc", mapping = {"windows" = '.\\target\\${PROFILE}\\libafl_cc.exe'} } PROFILE_DIR = {value = "release" }
LIBAFL_CXX = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx", mapping = {"windows" = '.\\target\\${PROFILE}\\libafl_cxx.exe'} } LIBAFL_CC = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc", mapping = {"windows" = '.\\target\\${PROFILE_DIR}\\libafl_cc.exe'} }
FUZZER = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "${CARGO_TARGET_DIR}/${PROFILE}/libfuzzer_stb_image_sugar", mapping = {"windows" = '.\\target\\${PROFILE}\\libfuzzer_stb_image_sugar.exe'} } LIBAFL_CXX = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx", mapping = {"windows" = '.\\target\\${PROFILE_DIR}\\libafl_cxx.exe'} }
FUZZER = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libfuzzer_stb_image_sugar", mapping = {"windows" = '.\\target\\${PROFILE_DIR}\\libfuzzer_stb_image_sugar.exe'} }
# Compilers # Compilers
[tasks.cxx] [tasks.cxx]
condition = { files_not_exist = ["${LIBAFL_CXX}"] } condition = { files_not_exist = ["${LIBAFL_CXX}"] }
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
condition = { files_not_exist = ["${LIBAFL_CC}"] } condition = { files_not_exist = ["${LIBAFL_CC}"] }
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
# Build the fuzzer # Build the fuzzer
[tasks.fuzzer] [tasks.fuzzer]
script_runner="@shell" script_runner="@shell"
script=''' script='''
cargo build --${PROFILE} cargo build --profile ${PROFILE}
cp ${FUZZER} . cp ${FUZZER} .
''' '''
dependencies = ["cc", "cxx"] dependencies = ["cc", "cxx"]

View File

@ -3,6 +3,7 @@
FUZZER_NAME='libfuzzer_windows_asan' FUZZER_NAME='libfuzzer_windows_asan'
CARGO_TARGET_DIR = { value = "./target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "./target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -18,7 +19,7 @@ windows_alias = "cxx_unix"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -27,7 +28,7 @@ windows_alias = "cc_unix"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.crash_cxx] [tasks.crash_cxx]
linux_alias = "unsupported" linux_alias = "unsupported"
@ -55,7 +56,7 @@ mac_alias = "unsupported"
windows_alias = "fuzzer_windows" windows_alias = "fuzzer_windows"
[tasks.fuzzer_windows] [tasks.fuzzer_windows]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["./harness.cpp", "-o", "${FUZZER_NAME}.exe"] args = ["./harness.cpp", "-o", "${FUZZER_NAME}.exe"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]

View File

@ -3,9 +3,10 @@
FUZZER_NAME='fuzzer_libpng_nautilus' FUZZER_NAME='fuzzer_libpng_nautilus'
CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } }
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc' PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
PROJECT_DIR = { script = ["pwd"] } PROJECT_DIR = { script = ["pwd"] }
[tasks.unsupported] [tasks.unsupported]
@ -36,7 +37,7 @@ windows_alias = "unsupported"
[tasks.cxx_unix] [tasks.cxx_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
[tasks.cc] [tasks.cc]
linux_alias = "cc_unix" linux_alias = "cc_unix"
@ -45,7 +46,7 @@ windows_alias = "unsupported"
[tasks.cc_unix] [tasks.cc_unix]
command = "cargo" command = "cargo"
args = ["build" , "--${PROFILE}"] args = ["build" , "--profile", "${PROFILE}"]
# Library # Library
[tasks.lib] [tasks.lib]
@ -59,7 +60,7 @@ script='''
cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes cd libpng-1.6.37 && ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
cp ../baby_fuzzer_nautilus/grammar.json . cp ../baby_fuzzer_nautilus/grammar.json .
make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" make -C libpng-1.6.37 CC="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc" CXX="${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
''' '''
dependencies = [ "libpng", "cxx", "cc" ] dependencies = [ "libpng", "cxx", "cc" ]
@ -71,7 +72,7 @@ mac_alias = "fuzzer_unix"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/../libfuzzer_libpng/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = ["${PROJECT_DIR}/../libfuzzer_libpng/harness.cc", "${PROJECT_DIR}/libpng-1.6.37/.libs/libpng16.a", "-I", "${PROJECT_DIR}/libpng-1.6.37/", "-o", "${FUZZER_NAME}", "-lm", "-lz"]
dependencies = [ "lib", "cxx", "cc" ] dependencies = [ "lib", "cxx", "cc" ]

View File

@ -1,5 +1,5 @@
[package] [package]
name = "qemu-coverage" name = "qemu_coverage"
version = "0.11.1" version = "0.11.1"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>", "WorksButNotTested"] authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>", "WorksButNotTested"]
edition = "2021" edition = "2021"

View File

@ -1,5 +1,6 @@
[env] [env]
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
CROSS_CC = "x86_64-linux-gnu-gcc" CROSS_CC = "x86_64-linux-gnu-gcc"
CROSS_CXX = "x86_64-linux-gnu-g++" CROSS_CXX = "x86_64-linux-gnu-g++"
CROSS_CFLAGS = "" CROSS_CFLAGS = ""
@ -183,7 +184,8 @@ windows_alias = "unsupported"
command = "cargo" command = "cargo"
args = [ args = [
"build", "build",
"--${PROFILE}", "--profile",
"${PROFILE}",
"--features", "${FEATURE}", "--features", "${FEATURE}",
"--target-dir", "${TARGET_DIR}" "--target-dir", "${TARGET_DIR}"
] ]
@ -192,7 +194,7 @@ args = [
dependencies = ["build"] dependencies = ["build"]
script_runner="@shell" script_runner="@shell"
script=''' script='''
mv ${TARGET_DIR}/${PROFILE}/qemu-coverage ${TARGET_DIR}/${PROFILE}/qemu-coverage-${CARGO_MAKE_PROFILE} mv ${TARGET_DIR}/${PROFILE_DIR}/qemu_coverage ${TARGET_DIR}/${PROFILE_DIR}/qemu_coverage-${CARGO_MAKE_PROFILE}
''' '''
[tasks.harness] [tasks.harness]
@ -223,7 +225,7 @@ mac_alias = "unsupported"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
command = "${TARGET_DIR}/${PROFILE}/qemu-coverage-${CARGO_MAKE_PROFILE}" command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_coverage-${CARGO_MAKE_PROFILE}"
args = [ args = [
"--coverage", "${TARGET_DIR}/drcov.log", "--coverage", "${TARGET_DIR}/drcov.log",
"--input", "./corpus", "--input", "./corpus",

View File

@ -1,4 +1,4 @@
# qemu-coverage # qemu_coverage
This folder contains an example fuzzer which runs each entry in the input corpus and collects This folder contains an example fuzzer which runs each entry in the input corpus and collects
the cumuative coverage data in drcov format. This fuzzer also distributes the test cases in the cumuative coverage data in drcov format. This fuzzer also distributes the test cases in

View File

@ -61,7 +61,7 @@ impl From<Version> for Str {
#[derive(Parser, Debug)] #[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None)] #[clap(author, version, about, long_about = None)]
#[command( #[command(
name = format!("qemu-coverage-{}",env!("CPU_TARGET")), name = format!("qemu_coverage-{}",env!("CPU_TARGET")),
version = Version::default(), version = Version::default(),
about, about,
long_about = "Tool for generating DrCov coverage data using QEMU instrumentation" long_about = "Tool for generating DrCov coverage data using QEMU instrumentation"

View File

@ -1,5 +1,6 @@
[env] [env]
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
CROSS_CC = "x86_64-linux-gnu-gcc" CROSS_CC = "x86_64-linux-gnu-gcc"
CROSS_CXX = "x86_64-linux-gnu-g++" CROSS_CXX = "x86_64-linux-gnu-g++"
CROSS_CFLAGS = "" CROSS_CFLAGS = ""
@ -183,7 +184,8 @@ windows_alias = "unsupported"
command = "cargo" command = "cargo"
args = [ args = [
"build", "build",
"--${PROFILE}", "--profile",
"${PROFILE}",
"--features", "${FEATURE}", "--features", "${FEATURE}",
"--target-dir", "${TARGET_DIR}" "--target-dir", "${TARGET_DIR}"
] ]
@ -192,7 +194,7 @@ args = [
dependencies = ["build"] dependencies = ["build"]
script_runner="@shell" script_runner="@shell"
script=''' script='''
mv ${TARGET_DIR}/${PROFILE}/qemu_launcher ${TARGET_DIR}/${PROFILE}/qemu_launcher-${CARGO_MAKE_PROFILE} mv ${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher ${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}
''' '''
[tasks.harness] [tasks.harness]
@ -223,7 +225,7 @@ mac_alias = "unsupported"
windows_alias = "unsupported" windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
command = "${TARGET_DIR}/${PROFILE}/qemu_launcher-${CARGO_MAKE_PROFILE}" command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}"
args = [ args = [
"--coverage", "${TARGET_DIR}/drcov.log", "--coverage", "${TARGET_DIR}/drcov.log",
"--input", "./corpus", "--input", "./corpus",

View File

@ -67,7 +67,7 @@ impl From<Version> for Str {
#[derive(Parser, Debug)] #[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None)] #[clap(author, version, about, long_about = None)]
#[command( #[command(
name = format!("qemu-coverage-{}",env!("CPU_TARGET")), name = format!("qemu_coverage-{}",env!("CPU_TARGET")),
version = Version::default(), version = Version::default(),
about, about,
long_about = "Tool for generating DrCov coverage data using QEMU instrumentation" long_about = "Tool for generating DrCov coverage data using QEMU instrumentation"

View File

@ -1,5 +1,6 @@
[env] [env]
PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} } PROFILE = { value = "release", condition = {env_not_set = ["PROFILE"]} }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }}
[tasks.unsupported] [tasks.unsupported]
script_runner="@shell" script_runner="@shell"
@ -27,7 +28,7 @@ windows_alias = "fuzzer_windows"
[tasks.fuzzer_windows] [tasks.fuzzer_windows]
dependencies = ["harness"] dependencies = ["harness"]
command = "cargo" command = "cargo"
args = ["build", "--${PROFILE}"] args = ["build", "--profile", "${PROFILE}"]
# Run the fuzzer # Run the fuzzer
[tasks.run] [tasks.run]
@ -38,7 +39,7 @@ windows_alias = "run_windows"
[tasks.run_windows] [tasks.run_windows]
dependencies = ["harness", "fuzzer"] dependencies = ["harness", "fuzzer"]
command = "cargo" command = "cargo"
args = ["run", "--${PROFILE}"] args = ["run", "--profile", "${PROFILE}"]
# Run the fuzzer # Run the fuzzer
@ -50,7 +51,7 @@ windows_alias = "test_windows"
[tasks.test_windows] [tasks.test_windows]
script_runner = "@shell" script_runner = "@shell"
script=''' script='''
copy .\target\${PROFILE}\tinyinst_simple.exe . copy .\target\${PROFILE_DIR}\tinyinst_simple.exe .
start "" "tinyinst_simple.exe" start "" "tinyinst_simple.exe"
#ping is for timeout #ping is for timeout
ping -n 10 127.0.0.1>NUL && taskkill /im tinyinst_simple.exe /F ping -n 10 127.0.0.1>NUL && taskkill /im tinyinst_simple.exe /F

View File

@ -695,4 +695,3 @@ static RegisterStandardPasses RegisterAutoTokensPass(
static RegisterStandardPasses RegisterAutoTokensPass0( static RegisterStandardPasses RegisterAutoTokensPass0(
PassManagerBuilder::EP_EnabledOnOptLevel0, registerAutoTokensPass); PassManagerBuilder::EP_EnabledOnOptLevel0, registerAutoTokensPass);
#endif #endif
#endif

View File

@ -481,4 +481,3 @@ static RegisterStandardPasses RegisterCmpLogRoutinesPassLTO(
registerCmpLogRoutinesPass); registerCmpLogRoutinesPass);
#endif #endif
#endif

View File

@ -12,6 +12,7 @@ else
fuzzers=$(cargo run -p build_and_test_fuzzers -- "remotes/origin/main" "HEAD^") fuzzers=$(cargo run -p build_and_test_fuzzers -- "remotes/origin/main" "HEAD^")
backtrace_fuzzers="" backtrace_fuzzers=""
export PROFILE=dev export PROFILE=dev
export PROFILE_DIR=debug
fi fi
libafl=$(pwd) libafl=$(pwd)