Format all tomls with taplo fmt (#2436)

Co-authored-by: Dominik Maier <domenukk@gmail.com>
This commit is contained in:
Mrmaxmeier 2024-07-26 10:03:10 +02:00 committed by GitHub
parent 76e1b4cb1e
commit afbdc02c54
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
119 changed files with 2381 additions and 1394 deletions

View File

@ -6,11 +6,17 @@ edition = "2021"
[dependencies] [dependencies]
pyo3 = { version = "0.18.3", features = ["extension-module"] } pyo3 = { version = "0.18.3", features = ["extension-module"] }
pyo3-log = "0.8.1" pyo3-log = "0.8.1"
libafl_sugar = { path = "../../libafl_sugar", version = "0.13.2", features = ["python"] } libafl_sugar = { path = "../../libafl_sugar", version = "0.13.2", features = [
libafl_bolts = { path = "../../libafl_bolts", version = "0.13.2", features = ["python"] } "python",
] }
libafl_bolts = { path = "../../libafl_bolts", version = "0.13.2", features = [
"python",
] }
[target.'cfg(target_os = "linux")'.dependencies] [target.'cfg(target_os = "linux")'.dependencies]
libafl_qemu = { path = "../../libafl_qemu", version = "0.13.2", features = ["python"] } libafl_qemu = { path = "../../libafl_qemu", version = "0.13.2", features = [
"python",
] }
[build-dependencies] [build-dependencies]
pyo3-build-config = { version = "0.17" } pyo3-build-config = { version = "0.17" }

View File

@ -1,7 +1,10 @@
[package] [package]
name = "baby_fuzzer" name = "baby_fuzzer"
version = "0.10.0" version = "0.10.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "baby_fuzzer_gramatron" name = "baby_fuzzer_gramatron"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -21,4 +24,6 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
postcard = { version = "1.0", features = ["alloc"], default-features = false } # no_std compatible serde serialization format postcard = { version = "1.0", features = [
"alloc",
], default-features = false } # no_std compatible serde serialization format

View File

@ -1,7 +1,10 @@
[package] [package]
name = "baby_fuzzer_grimoire" name = "baby_fuzzer_grimoire"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]

View File

@ -1,7 +1,11 @@
[package] [package]
name = "baby_fuzzer_minimizing" name = "baby_fuzzer_minimizing"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>", "Addison Crump <research@addisoncrump.info>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
"Addison Crump <research@addisoncrump.info>",
]
edition = "2021" edition = "2021"
[features] [features]

View File

@ -1,7 +1,11 @@
[package] [package]
name = "baby_fuzzer_multi" name = "baby_fuzzer_multi"
version = "0.10.0" version = "0.10.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>", "Addison Crump <me@addisoncrump.info>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
"Addison Crump <me@addisoncrump.info>",
]
edition = "2021" edition = "2021"
[features] [features]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "baby_fuzzer_nautilus" name = "baby_fuzzer_nautilus"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]

View File

@ -27,7 +27,12 @@ cc = "1.0"
[dependencies] [dependencies]
libafl = { path = "../../../libafl" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog", "pointer_maps"] } libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
"sancov_cmplog",
"pointer_maps",
] }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }

View File

@ -2,7 +2,9 @@
[env] [env]
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" } PROFILE = { value = "release" }
PROFILE_DIR = { value = "release" } PROFILE_DIR = { value = "release" }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc' LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'

View File

@ -1,7 +1,10 @@
[package] [package]
name = "baby_fuzzer_tokens" name = "baby_fuzzer_tokens"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "baby_fuzzer_unicode" name = "baby_fuzzer_unicode"
version = "0.10.0" version = "0.10.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "baby_fuzzer_with_forkexecutor" name = "baby_fuzzer_with_forkexecutor"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "baby_no_std" name = "baby_no_std"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[profile.dev] [profile.dev]
@ -21,4 +24,3 @@ static-alloc = "0.2.3"
[target.'cfg(unix)'.dependencies] [target.'cfg(unix)'.dependencies]
libc = "0.2" libc = "0.2"

View File

@ -2,7 +2,9 @@
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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"
@ -13,7 +15,14 @@ echo "Cargo-make not integrated yet on this"
# Fuzzer # Fuzzer
[tasks.build] [tasks.build]
command = "cargo" command = "cargo"
args = ["build", "--profile", "${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]

View File

@ -26,7 +26,11 @@ nix = { version = "0.29", features = ["signal"] }
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "pointer_maps"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
"pointer_maps",
] }
env_logger = "0.11" env_logger = "0.11"
[lib] [lib]

View File

@ -1,9 +1,13 @@
# Variables # Variables
[env] [env]
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"] } }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc' LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'

View File

@ -18,11 +18,22 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = [ "std", "llmp_compression", "llmp_bind_public", "frida_cli" ] } #, "llmp_small_maps", "llmp_debug"]} libafl = { path = "../../../libafl/", features = [
"std",
"llmp_compression",
"llmp_bind_public",
"frida_cli",
] } #, "llmp_small_maps", "llmp_debug"]}
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
frida-gum = { version = "0.13.6", features = [ "auto-download", "event-sink", "invocation-listener"] } frida-gum = { version = "0.13.6", features = [
"auto-download",
"event-sink",
"invocation-listener",
] }
libafl_frida = { path = "../../../libafl_frida", features = ["cmplog"] } libafl_frida = { path = "../../../libafl_frida", features = ["cmplog"] }
libafl_targets = { path = "../../../libafl_targets", features = ["sancov_cmplog"] } libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_cmplog",
] }
libc = "0.2" libc = "0.2"
libloading = "0.7" libloading = "0.7"
num-traits = "0.2" num-traits = "0.2"

View File

@ -1,8 +1,12 @@
# Variables # Variables
[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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"

View File

@ -15,12 +15,23 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = [ "std", "llmp_compression", libafl = { path = "../../../libafl/", features = [
"llmp_bind_public", "frida_cli", "errors_backtrace" ] } #, "llmp_small_maps", "llmp_debug"]} "std",
"llmp_compression",
"llmp_bind_public",
"frida_cli",
"errors_backtrace",
] } #, "llmp_small_maps", "llmp_debug"]}
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
frida-gum = { version = "0.13.6", features = ["auto-download", "event-sink", "invocation-listener"] } frida-gum = { version = "0.13.6", features = [
"auto-download",
"event-sink",
"invocation-listener",
] }
libafl_frida = { path = "../../../libafl_frida", features = ["cmplog"] } libafl_frida = { path = "../../../libafl_frida", features = ["cmplog"] }
libafl_targets = { path = "../../../libafl_targets", features = ["sancov_cmplog"] } libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_cmplog",
] }
libloading = "0.7" libloading = "0.7"
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }
dlmalloc = { version = "0.2.6", features = ["global"] } dlmalloc = { version = "0.2.6", features = ["global"] }

View File

@ -1,9 +1,13 @@
# Variables # Variables
[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",
] } }
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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"

View File

@ -1,7 +1,10 @@
[package] [package]
name = "frida_fuzzer" name = "frida_fuzzer"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -15,12 +18,23 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = [ "std", "llmp_compression", libafl = { path = "../../../libafl/", features = [
"llmp_bind_public", "frida_cli", "errors_backtrace" ] } #, "llmp_small_maps", "llmp_debug"]} "std",
"llmp_compression",
"llmp_bind_public",
"frida_cli",
"errors_backtrace",
] } #, "llmp_small_maps", "llmp_debug"]}
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
frida-gum = { version = "0.13.6", features = ["auto-download", "event-sink", "invocation-listener"] } frida-gum = { version = "0.13.6", features = [
"auto-download",
"event-sink",
"invocation-listener",
] }
libafl_frida = { path = "../../../libafl_frida", features = ["cmplog"] } libafl_frida = { path = "../../../libafl_frida", features = ["cmplog"] }
libafl_targets = { path = "../../../libafl_targets", features = ["sancov_cmplog"] } libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_cmplog",
] }
libloading = "0.7" libloading = "0.7"
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }
color-backtrace = "0.5" color-backtrace = "0.5"

View File

@ -1,9 +1,13 @@
# Variables # Variables
[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",
] } }
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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"

View File

@ -1,7 +1,10 @@
[package] [package]
name = "fuzzbench" name = "fuzzbench"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -27,7 +30,11 @@ which = "6.0"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "sancov_cmplog", "libfuzzer"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"sancov_cmplog",
"libfuzzer",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
clap = { version = "4.5", features = ["default"] } clap = { version = "4.5", features = ["default"] }

View File

@ -1,9 +1,13 @@
[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",
] } }
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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"

View File

@ -1,7 +1,10 @@
[package] [package]
name = "fuzzbench_ctx" name = "fuzzbench_ctx"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -27,7 +30,12 @@ which = "6.0"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "sancov_cmplog", "libfuzzer", "sancov_ctx"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"sancov_cmplog",
"libfuzzer",
"sancov_ctx",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
clap = { version = "4.5", features = ["default"] } clap = { version = "4.5", features = ["default"] }

View File

@ -1,9 +1,13 @@
[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",
] } }
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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"

View File

@ -1,7 +1,10 @@
[package] [package]
name = "fuzzbench_fork_qemu" name = "fuzzbench_fork_qemu"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -22,7 +25,10 @@ strip = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_qemu = { path = "../../../libafl_qemu/", features = ["x86_64", "usermode"] } libafl_qemu = { path = "../../../libafl_qemu/", features = [
"x86_64",
"usermode",
] }
clap = { version = "4.5", features = ["default"] } clap = { version = "4.5", features = ["default"] }
nix = { version = "0.29", features = ["fs"] } nix = { version = "0.29", features = ["fs"] }

View File

@ -3,7 +3,9 @@
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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"
@ -67,7 +69,18 @@ windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
command = "cargo" command = "cargo"
args = ["run", "--profile", "${PROFILE_DIR}", "./${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

@ -1,7 +1,10 @@
[package] [package]
name = "fuzzbench_forkserver" name = "fuzzbench_forkserver"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[profile.release] [profile.release]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "fuzzbench_forkserver_cmplog" name = "fuzzbench_forkserver_cmplog"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[profile.release] [profile.release]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "fuzzbench_qemu" name = "fuzzbench_qemu"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -22,8 +25,10 @@ strip = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_qemu = { path = "../../../libafl_qemu/", features = ["x86_64", "usermode"] } libafl_qemu = { path = "../../../libafl_qemu/", features = [
"x86_64",
"usermode",
] }
clap = { version = "4.5", features = ["default"] } clap = { version = "4.5", features = ["default"] }
nix = { version = "0.29", features = ["fs"] } nix = { version = "0.29", features = ["fs"] }

View File

@ -3,7 +3,9 @@
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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"
@ -67,7 +69,18 @@ windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
command = "cargo" command = "cargo"
args = ["run", "--profile", "${PROFILE}", "./${FUZZER_NAME}", "--", "--libafl-in", "../../libpng/libfuzzer_libpng/corpus", "--libafl-out", "./out", "./${FUZZER_NAME}"] args = [
"run",
"--profile",
"${PROFILE}",
"./${FUZZER_NAME}",
"--",
"--libafl-in",
"../../libpng/libfuzzer_libpng/corpus",
"--libafl-out",
"./out",
"./${FUZZER_NAME}",
]
dependencies = ["harness", "fuzzer"] dependencies = ["harness", "fuzzer"]
# Run the fuzzer # Run the fuzzer

View File

@ -1,7 +1,10 @@
[package] [package]
name = "fuzzbench_text" name = "fuzzbench_text"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -22,7 +25,11 @@ which = "6.0"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "sancov_cmplog", "libfuzzer"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"sancov_cmplog",
"libfuzzer",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
clap = { version = "4.5", features = ["default"] } clap = { version = "4.5", features = ["default"] }

View File

@ -1,9 +1,13 @@
[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",
] } }
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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libfuzzer_libpng" name = "libfuzzer_libpng"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -24,7 +27,11 @@ which = "6.0"
libafl = { path = "../../../libafl/", features = ["default"] } libafl = { path = "../../../libafl/", features = ["default"] }
# libafl = { path = "../../../libafl/", features = ["default"] } # libafl = { path = "../../../libafl/", features = ["default"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
"sancov_cmplog",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }

View File

@ -2,9 +2,13 @@
[env] [env]
FUZZER_NAME = 'fuzzer_libpng' 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"] } }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/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_DIR}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
@ -104,7 +108,16 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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"]
# Crashing Harness # Crashing Harness
@ -115,7 +128,16 @@ windows_alias = "unsupported"
[tasks.fuzzer_crash_unix] [tasks.fuzzer_crash_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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"]
# Run the fuzzer # Run the fuzzer
@ -150,7 +172,6 @@ sleep 0.2
dependencies = ["fuzzer_crash"] dependencies = ["fuzzer_crash"]
# Test # Test
[tasks.test] [tasks.test]
linux_alias = "test_unix" linux_alias = "test_unix"

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libfuzzer_libpng_accounting" name = "libfuzzer_libpng_accounting"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -19,9 +22,21 @@ cc = { version = "1.0", features = ["parallel"] }
which = "6.0" which = "6.0"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["std", "derive", "llmp_compression", "introspection"] } libafl = { path = "../../../libafl/", features = [
libafl_bolts = { path = "../../../libafl_bolts/", features = ["std", "derive", "llmp_compression"] } "std",
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } "derive",
"llmp_compression",
"introspection",
] }
libafl_bolts = { path = "../../../libafl_bolts/", features = [
"std",
"derive",
"llmp_compression",
] }
libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
clap = { version = "4.5", features = ["derive"] } clap = { version = "4.5", features = ["derive"] }

View File

@ -1,8 +1,12 @@
# Variables # Variables
[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"] }} 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_DIR}/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'
@ -72,7 +76,16 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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"]
# Run the fuzzer # Run the fuzzer

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libfuzzer_libpng_launcher_centralized" name = "libfuzzer_libpng_launcher_centralized"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -19,9 +22,23 @@ cc = { version = "1.0", features = ["parallel"] }
which = "6.0" which = "6.0"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["std", "derive", "rand_trait", "fork", "prelude", "gzip", "regex", "scalability_introspection"] } libafl = { path = "../../../libafl/", features = [
libafl_bolts = { path = "../../../libafl_bolts/", features = ["errors_backtrace"] } "std",
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } "derive",
"rand_trait",
"fork",
"prelude",
"gzip",
"regex",
"scalability_introspection",
] }
libafl_bolts = { path = "../../../libafl_bolts/", features = [
"errors_backtrace",
] }
libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
clap = { version = "4.5", features = ["derive"] } clap = { version = "4.5", features = ["derive"] }

View File

@ -1,9 +1,13 @@
# Variables # Variables
[env] [env]
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"] } }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/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_DIR}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
@ -72,7 +76,16 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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"]
# Run the fuzzer # Run the fuzzer

View File

@ -1,7 +1,11 @@
[package] [package]
name = "libfuzzer_libpng_cmin" name = "libfuzzer_libpng_cmin"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>", "Addison Crump <research@addisoncrump.info>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
"Addison Crump <research@addisoncrump.info>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -25,7 +29,11 @@ env_logger = "0.10"
libafl = { path = "../../../libafl/", features = ["default", "cmin"] } libafl = { path = "../../../libafl/", features = ["default", "cmin"] }
# libafl = { path = "../../../libafl/", features = ["default"] } # libafl = { path = "../../../libafl/", features = ["default"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
"sancov_cmplog",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }

View File

@ -2,9 +2,13 @@
[env] [env]
FUZZER_NAME = 'fuzzer_libpng' 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"] } }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/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_DIR}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
@ -104,7 +108,17 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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", "-lz3"] 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",
"-lz3",
]
dependencies = ["lib", "cxx", "cc"] dependencies = ["lib", "cxx", "cc"]
# Crashing Harness # Crashing Harness
@ -115,7 +129,17 @@ windows_alias = "unsupported"
[tasks.fuzzer_crash_unix] [tasks.fuzzer_crash_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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", "-lz3"] 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",
"-lz3",
]
dependencies = ["crash_lib", "crash_cxx", "crash_cc"] dependencies = ["crash_lib", "crash_cxx", "crash_cc"]
# Run the fuzzer # Run the fuzzer
@ -150,7 +174,6 @@ sleep 0.2
dependencies = ["fuzzer_crash"] dependencies = ["fuzzer_crash"]
# Test # Test
[tasks.test] [tasks.test]
linux_alias = "test_unix" linux_alias = "test_unix"

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libfuzzer_libpng_launcher" name = "libfuzzer_libpng_launcher"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -19,9 +22,17 @@ cc = { version = "1.0", features = ["parallel"] }
which = "6.0" which = "6.0"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["std", "derive", "llmp_compression", "introspection"] } libafl = { path = "../../../libafl/", features = [
"std",
"derive",
"llmp_compression",
"introspection",
] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
clap = { version = "4.5", features = ["derive"] } clap = { version = "4.5", features = ["derive"] }

View File

@ -1,9 +1,13 @@
# Variables # Variables
[env] [env]
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"] } }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/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'
LIBAFL_LIBTOOL = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_libtool' LIBAFL_LIBTOOL = '${CARGO_TARGET_DIR}/${PROFILE}/libafl_libtool'
@ -73,7 +77,16 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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"]
# Run the fuzzer # Run the fuzzer

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libfuzzer_libpng_launcher_norestart" name = "libfuzzer_libpng_launcher_norestart"
version = "0.9.0" version = "0.9.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -21,8 +24,13 @@ which = "6.0"
[dependencies] [dependencies]
env_logger = "0.10" env_logger = "0.10"
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/", features = ["errors_backtrace"] } libafl_bolts = { path = "../../../libafl_bolts/", features = [
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } "errors_backtrace",
] }
libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
clap = { version = "4.5", features = ["derive"] } clap = { version = "4.5", features = ["derive"] }

View File

@ -1,9 +1,13 @@
# Variables # Variables
[env] [env]
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"] } }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/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_DIR}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
@ -62,7 +66,16 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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", "cc"] dependencies = ["lib", "cc"]
# Run the fuzzer # Run the fuzzer

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libfuzzer_libpng_tcp_manager" name = "libfuzzer_libpng_tcp_manager"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -24,7 +27,11 @@ which = "6.0"
libafl = { path = "../../../libafl/", features = ["default", "tcp_manager"] } libafl = { path = "../../../libafl/", features = ["default", "tcp_manager"] }
# libafl = { path = "../../../libafl/", features = ["default"] } # libafl = { path = "../../../libafl/", features = ["default"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
"sancov_cmplog",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }

View File

@ -2,9 +2,13 @@
[env] [env]
FUZZER_NAME = 'fuzzer_libpng' 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"] } }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/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_DIR}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
@ -104,7 +108,16 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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"]
# Crashing Harness # Crashing Harness
@ -115,7 +128,16 @@ windows_alias = "unsupported"
[tasks.fuzzer_crash_unix] [tasks.fuzzer_crash_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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"]
# Run the fuzzer # Run the fuzzer
@ -150,7 +172,6 @@ sleep 0.2
dependencies = ["fuzzer_crash"] dependencies = ["fuzzer_crash"]
# Test # Test
[tasks.test] [tasks.test]
linux_alias = "test_unix" linux_alias = "test_unix"

View File

@ -3,10 +3,19 @@ name = "cargo_fuzz_test"
edition = "2021" edition = "2021"
version = "0.0.0" version = "0.0.0"
description = "test" description = "test"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
repository = "https://github.com/AFLplusplus/LibAFL/" repository = "https://github.com/AFLplusplus/LibAFL/"
keywords = ["fuzzing", "testing", "compiler"] keywords = ["fuzzing", "testing", "compiler"]
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -1,7 +1,10 @@
[package] [package]
name = "dynamic_analysis" name = "dynamic_analysis"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -29,7 +32,12 @@ env_logger = "0.11"
once_cell = "1.19" once_cell = "1.19"
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "sancov_cmplog", "libfuzzer", "function-logging"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"sancov_cmplog",
"libfuzzer",
"function-logging",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
clap = { version = "4.5", features = ["default"] } clap = { version = "4.5", features = ["default"] }

View File

@ -1,9 +1,13 @@
[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",
] } }
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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"
@ -38,7 +42,16 @@ windows_alias = "unsupported"
[tasks.fuzz_o_unix] [tasks.fuzz_o_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["--libafl-no-link", "-O3","-I", "./Little-CMS/include", "-c", "cms_transform_fuzzer.cc", "-o", "cms_transform_fuzzer.o"] args = [
"--libafl-no-link",
"-O3",
"-I",
"./Little-CMS/include",
"-c",
"cms_transform_fuzzer.cc",
"-o",
"cms_transform_fuzzer.o",
]
dependencies = ["cc", "cxx"] dependencies = ["cc", "cxx"]
# Fuzzer # Fuzzer
@ -49,7 +62,15 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["--libafl", "cms_transform_fuzzer.o", "./Little-CMS/src/.libs/liblcms2.a", "-o", "${FUZZER_NAME}", "-lm", "-lz"] args = [
"--libafl",
"cms_transform_fuzzer.o",
"./Little-CMS/src/.libs/liblcms2.a",
"-o",
"${FUZZER_NAME}",
"-lm",
"-lz",
]
dependencies = ["cc", "cxx", "fuzz_o"] dependencies = ["cc", "cxx", "fuzz_o"]
# Run # Run

View File

@ -6,8 +6,17 @@ edition = "2021"
[dependencies] [dependencies]
clap = { version = "4.5", features = ["derive", "env"] } clap = { version = "4.5", features = ["derive", "env"] }
env_logger = "0.11.3" env_logger = "0.11.3"
libafl = { path = "../../../libafl", features = ["std", "derive", "track_hit_feedbacks", "clap", "errors_backtrace"]} libafl = { path = "../../../libafl", features = [
libafl_bolts = { path = "../../../libafl_bolts", features = ["std", "errors_backtrace"]} "std",
"derive",
"track_hit_feedbacks",
"clap",
"errors_backtrace",
] }
libafl_bolts = { path = "../../../libafl_bolts", features = [
"std",
"errors_backtrace",
] }
libafl_targets = { path = "../../../libafl_targets" } libafl_targets = { path = "../../../libafl_targets" }
memmap2 = "0.9.4" memmap2 = "0.9.4"
nix = { version = "0.29", features = ["fs"] } nix = { version = "0.29", features = ["fs"] }

View File

@ -1,11 +1,17 @@
[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", condition = { env_not_set = ["PROFILE"] } }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
FUZZER_NAME = 'libafl-fuzz' FUZZER_NAME = 'libafl-fuzz'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
LLVM_CONFIG = {value = "llvm-config-18", condition = {env_not_set = ["LLVM_CONFIG"] }} LLVM_CONFIG = { value = "llvm-config-18", condition = { env_not_set = [
"LLVM_CONFIG",
] } }
AFL_VERSION = "db23931e7c1727ddac8691a6241c97b2203ec6fc" AFL_VERSION = "db23931e7c1727ddac8691a6241c97b2203ec6fc"
AFL_DIR_NAME= {value = "./AFLplusplus-${AFL_VERSION}"} AFL_DIR_NAME= {value = "./AFLplusplus-${AFL_VERSION}"}
AFL_CC_PATH= {value = "${AFL_DIR_NAME}/afl-clang-fast"} AFL_CC_PATH= {value = "${AFL_DIR_NAME}/afl-clang-fast"}

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libafl_atheris" name = "libafl_atheris"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -21,7 +24,12 @@ which = "6.0"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["pointer_maps", "sancov_cmplog", "libfuzzer", "sancov_8bit"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"pointer_maps",
"sancov_cmplog",
"libfuzzer",
"sancov_8bit",
] }
clap = { version = "4.5", features = ["default"] } clap = { version = "4.5", features = ["default"] }
[lib] [lib]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libfuzzer_libmozjpeg" name = "libfuzzer_libmozjpeg"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -17,7 +20,11 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_value_profile", "libfuzzer"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_edges",
"sancov_value_profile",
"libfuzzer",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }

View File

@ -1,9 +1,13 @@
# Variables # Variables
[env] [env]
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"] } }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc' LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cc'
LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx' LIBAFL_CXX = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx'
FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
@ -71,7 +75,17 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/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"]
# Run the fuzzer # Run the fuzzer

View File

@ -16,7 +16,10 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["libfuzzer", "sancov_pcguard_edges"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"libfuzzer",
"sancov_pcguard_edges",
] }
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
[build-dependencies] [build-dependencies]

View File

@ -1,9 +1,13 @@
# Variables # Variables
[env] [env]
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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"

View File

@ -1,7 +1,10 @@
[package] [package]
name = "nautilus_sync" name = "nautilus_sync"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -22,7 +25,10 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["default", "nautilus"] } libafl = { path = "../../../libafl/", features = ["default", "nautilus"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
clap = { version = "4.5", features = ["derive"] } clap = { version = "4.5", features = ["derive"] }

View File

@ -1,9 +1,13 @@
# Variables # Variables
[env] [env]
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"] } }
PROFILE_DIR = {value = "release", condition = {env_not_set = ["PROFILE_DIR"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
"PROFILE_DIR",
] } }
LIBAFL_CC = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/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_DIR}/${FUZZER_NAME}' FUZZER = '${CARGO_TARGET_DIR}/${PROFILE_DIR}/${FUZZER_NAME}'
@ -73,7 +77,16 @@ windows_alias = "unsupported"
[tasks.fuzzer_unix] [tasks.fuzzer_unix]
command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx" command = "${CARGO_TARGET_DIR}/${PROFILE_DIR}/libafl_cxx"
args = ["${PROJECT_DIR}/../../libpng/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}/../../libpng/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"]
# Run the fuzzer # Run the fuzzer

View File

@ -1,7 +1,10 @@
[package] [package]
name = "push_harness" name = "push_harness"
version = "0.10.0" version = "0.10.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "push_stage_harness" name = "push_stage_harness"
version = "0.10.0" version = "0.10.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]

View File

@ -1,7 +1,11 @@
[package] [package]
name = "libfuzzer_libpng_launcher_centralized_multi_machine" name = "libfuzzer_libpng_launcher_centralized_multi_machine"
version = "0.12.0" version = "0.12.0"
authors = ["Romain Malmain <romain.malmain@pm.me>", "Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Romain Malmain <romain.malmain@pm.me>",
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -20,9 +24,34 @@ which = "6.0"
[dependencies] [dependencies]
# no llmp compression for now, better perfs. # no llmp compression for now, better perfs.
libafl = { path = "../../../libafl", default-features = false, features = ["std", "derive", "llmp_small_maps", "llmp_broker_timeouts", "rand_trait", "fork", "prelude", "gzip", "regex", "serdeany_autoreg", "tui_monitor", "std", "derive", "rand_trait", "fork", "prelude", "gzip", "regex", "scalability_introspection", "multi_machine", "errors_backtrace"] } libafl = { path = "../../../libafl", default-features = false, features = [
"std",
"derive",
"llmp_small_maps",
"llmp_broker_timeouts",
"rand_trait",
"fork",
"prelude",
"gzip",
"regex",
"serdeany_autoreg",
"tui_monitor",
"std",
"derive",
"rand_trait",
"fork",
"prelude",
"gzip",
"regex",
"scalability_introspection",
"multi_machine",
"errors_backtrace",
] }
libafl_bolts = { path = "../../../libafl_bolts", features = ["xxh3"] } libafl_bolts = { path = "../../../libafl_bolts", features = ["xxh3"] }
libafl_targets = { path = "../../../libafl_targets", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts",
"libfuzzer",
] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc" } libafl_cc = { path = "../../../libafl_cc" }
clap = { version = "4.5", features = ["derive"] } clap = { version = "4.5", features = ["derive"] }

View File

@ -1,7 +1,11 @@
[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"] }} PROFILE_DIR = { value = "release", condition = { env_not_set = [
CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } "PROFILE_DIR",
] } }
CARGO_TARGET_DIR = { value = "target", condition = { env_not_set = [
"CARGO_TARGET_DIR",
] } }
[tasks.unsupported] [tasks.unsupported]
script_runner = "@shell" script_runner = "@shell"

View File

@ -1,7 +1,10 @@
[package] [package]
name = "tutorial" name = "tutorial"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -21,9 +24,17 @@ which = "6.0"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["default", "rand_trait"] } libafl = { path = "../../../libafl/", features = ["default", "rand_trait"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] } libafl_targets = { path = "../../../libafl_targets/", features = [
serde = { version = "1.0", default-features = false, features = ["alloc"] } # serialization lib "sancov_pcguard_hitcounts",
lain = { version = "0.5", features = ["serde_support"], git = "https://github.com/AFLplusplus/lain.git", rev = "208e927bcf411f62f8a1f51ac2d9f9423a1ec5d3" } # We're using a lain fork compatible with libafl's rand version "libfuzzer",
"sancov_cmplog",
] }
serde = { version = "1.0", default-features = false, features = [
"alloc",
] } # serialization lib
lain = { version = "0.5", features = [
"serde_support",
], git = "https://github.com/AFLplusplus/lain.git", rev = "208e927bcf411f62f8a1f51ac2d9f9423a1ec5d3" } # We're using a lain fork compatible with libafl's rand version
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }

View File

@ -1,7 +1,11 @@
[package] [package]
name = "qemu_cmin" name = "qemu_cmin"
version = "0.13.0" version = "0.13.0"
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"
[profile.release] [profile.release]
@ -22,7 +26,14 @@ mips = ["libafl_qemu/mips"]
ppc = ["libafl_qemu/ppc", "be"] ppc = ["libafl_qemu/ppc", "be"]
[build-dependencies] [build-dependencies]
vergen = { version = "8.2.1", features = ["build", "cargo", "git", "gitcl", "rustc", "si"] } vergen = { version = "8.2.1", features = [
"build",
"cargo",
"git",
"gitcl",
"rustc",
"si",
] }
[dependencies] [dependencies]
clap = { version = "4.5", features = ["derive", "string"] } clap = { version = "4.5", features = ["derive", "string"] }

View File

@ -1,6 +1,8 @@
[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"] }} 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 = ""
@ -109,7 +111,9 @@ windows_alias = "unsupported"
[tasks.zlib_unix_wget] [tasks.zlib_unix_wget]
dependencies = ["deps_dir"] dependencies = ["deps_dir"]
condition = { files_not_exist = [ "${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/zlib-1.2.13" ] } condition = { files_not_exist = [
"${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/zlib-1.2.13",
] }
script_runner = "@shell" script_runner = "@shell"
# NOTE: There's no specific reason we're using an old version of zlib, # NOTE: There's no specific reason we're using an old version of zlib,
# but newer versions get moved to fossils/ after a while. # but newer versions get moved to fossils/ after a while.
@ -148,7 +152,9 @@ windows_alias = "unsupported"
[tasks.libpng_unix_wget] [tasks.libpng_unix_wget]
dependencies = ["deps_dir"] dependencies = ["deps_dir"]
condition = { files_not_exist = [ "${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/libpng-1.6.37" ] } condition = { files_not_exist = [
"${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/libpng-1.6.37",
] }
script_runner = "@shell" script_runner = "@shell"
script = ''' script = '''
wget \ wget \
@ -193,8 +199,10 @@ args = [
"build", "build",
"--profile", "--profile",
"${PROFILE}", "${PROFILE}",
"--features", "${FEATURE}", "--features",
"--target-dir", "${TARGET_DIR}" "${FEATURE}",
"--target-dir",
"${TARGET_DIR}",
] ]
[tasks.fuzzer] [tasks.fuzzer]
@ -235,8 +243,10 @@ windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_cmin-${CARGO_MAKE_PROFILE}" command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_cmin-${CARGO_MAKE_PROFILE}"
args = [ args = [
"--output", "./output", "--output",
"--input", "./corpus", "./output",
"--input",
"./corpus",
"--verbose", "--verbose",
"--", "--",
"${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}", "${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}",
@ -252,10 +262,7 @@ windows_alias = "unsupported"
dependencies = ["lightweight"] dependencies = ["lightweight"]
# Tidy up after we've run our tests so we don't hog all the disk space # Tidy up after we've run our tests so we don't hog all the disk space
command = "cargo" command = "cargo"
args = [ args = ["make", "clean"]
"make",
"clean",
]
[tasks.test_full] [tasks.test_full]
linux_alias = "test_unix_full" linux_alias = "test_unix_full"
@ -266,10 +273,7 @@ windows_alias = "unsupported"
dependencies = ["all"] dependencies = ["all"]
# Tidy up after we've run our tests so we don't hog all the disk space # Tidy up after we've run our tests so we don't hog all the disk space
command = "cargo" command = "cargo"
args = [ args = ["make", "clean"]
"make",
"clean",
]
[tasks.clean] [tasks.clean]
linux_alias = "clean_unix" linux_alias = "clean_unix"
@ -287,64 +291,30 @@ cargo clean
[tasks.arm] [tasks.arm]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "arm", "run"]
"make",
"-p", "arm",
"run",
]
[tasks.aarch64] [tasks.aarch64]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "aarch64", "run"]
"make",
"-p", "aarch64",
"run",
]
[tasks.x86_64] [tasks.x86_64]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "x86_64", "run"]
"make",
"-p", "x86_64",
"run",
]
[tasks.i386] [tasks.i386]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "i386", "run"]
"make",
"-p", "i386",
"run",
]
[tasks.mips] [tasks.mips]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "mips", "run"]
"make",
"-p", "mips",
"run",
]
[tasks.ppc] [tasks.ppc]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "ppc", "run"]
"make",
"-p", "ppc",
"run",
]
[tasks.all] [tasks.all]
dependencies = [ dependencies = ["arm", "aarch64", "x86_64", "i386", "mips", "ppc"]
"arm",
"aarch64",
"x86_64",
"i386",
"mips",
"ppc"
]
[tasks.lightweight] [tasks.lightweight]
dependencies = [ dependencies = ["arm", "x86_64"]
"arm",
"x86_64",
]

View File

@ -1,7 +1,11 @@
[package] [package]
name = "qemu_coverage" name = "qemu_coverage"
version = "0.13.0" version = "0.13.0"
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"
[profile.release] [profile.release]
@ -22,7 +26,14 @@ mips = ["libafl_qemu/mips"]
ppc = ["libafl_qemu/ppc", "be"] ppc = ["libafl_qemu/ppc", "be"]
[build-dependencies] [build-dependencies]
vergen = { version = "8.2.1", features = ["build", "cargo", "git", "gitcl", "rustc", "si"] } vergen = { version = "8.2.1", features = [
"build",
"cargo",
"git",
"gitcl",
"rustc",
"si",
] }
[dependencies] [dependencies]
clap = { version = "4.5", features = ["derive", "string"] } clap = { version = "4.5", features = ["derive", "string"] }

View File

@ -1,6 +1,8 @@
[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"] }} 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 = ""
@ -109,7 +111,9 @@ windows_alias = "unsupported"
[tasks.zlib_unix_wget] [tasks.zlib_unix_wget]
dependencies = ["deps_dir"] dependencies = ["deps_dir"]
condition = { files_not_exist = [ "${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/zlib-1.2.13" ] } condition = { files_not_exist = [
"${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/zlib-1.2.13",
] }
script_runner = "@shell" script_runner = "@shell"
# NOTE: There's no specific reason we're using an old version of zlib, # NOTE: There's no specific reason we're using an old version of zlib,
# but newer versions get moved to fossils/ after a while. # but newer versions get moved to fossils/ after a while.
@ -148,7 +152,9 @@ windows_alias = "unsupported"
[tasks.libpng_unix_wget] [tasks.libpng_unix_wget]
dependencies = ["deps_dir"] dependencies = ["deps_dir"]
condition = { files_not_exist = [ "${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/libpng-1.6.37" ] } condition = { files_not_exist = [
"${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/libpng-1.6.37",
] }
script_runner = "@shell" script_runner = "@shell"
script = ''' script = '''
wget \ wget \
@ -193,8 +199,10 @@ args = [
"build", "build",
"--profile", "--profile",
"${PROFILE}", "${PROFILE}",
"--features", "${FEATURE}", "--features",
"--target-dir", "${TARGET_DIR}" "${FEATURE}",
"--target-dir",
"${TARGET_DIR}",
] ]
[tasks.fuzzer] [tasks.fuzzer]
@ -235,8 +243,10 @@ windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_coverage-${CARGO_MAKE_PROFILE}" command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_coverage-${CARGO_MAKE_PROFILE}"
args = [ args = [
"--coverage-path", "${TARGET_DIR}/drcov.log", "--coverage-path",
"--input-dir", "./corpus", "${TARGET_DIR}/drcov.log",
"--input-dir",
"./corpus",
"--", "--",
"${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}", "${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}",
] ]
@ -251,10 +261,7 @@ windows_alias = "unsupported"
dependencies = ["lightweight"] dependencies = ["lightweight"]
# Tidy up after we've run our tests so we don't hog all the disk space # Tidy up after we've run our tests so we don't hog all the disk space
command = "cargo" command = "cargo"
args = [ args = ["make", "clean"]
"make",
"clean",
]
[tasks.test_full] [tasks.test_full]
linux_alias = "test_unix_full" linux_alias = "test_unix_full"
@ -265,10 +272,7 @@ windows_alias = "unsupported"
dependencies = ["all"] dependencies = ["all"]
# Tidy up after we've run our tests so we don't hog all the disk space # Tidy up after we've run our tests so we don't hog all the disk space
command = "cargo" command = "cargo"
args = [ args = ["make", "clean"]
"make",
"clean",
]
[tasks.clean] [tasks.clean]
linux_alias = "clean_unix" linux_alias = "clean_unix"
@ -286,64 +290,30 @@ cargo clean
[tasks.arm] [tasks.arm]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "arm", "run"]
"make",
"-p", "arm",
"run",
]
[tasks.aarch64] [tasks.aarch64]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "aarch64", "run"]
"make",
"-p", "aarch64",
"run",
]
[tasks.x86_64] [tasks.x86_64]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "x86_64", "run"]
"make",
"-p", "x86_64",
"run",
]
[tasks.i386] [tasks.i386]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "i386", "run"]
"make",
"-p", "i386",
"run",
]
[tasks.mips] [tasks.mips]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "mips", "run"]
"make",
"-p", "mips",
"run",
]
[tasks.ppc] [tasks.ppc]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "ppc", "run"]
"make",
"-p", "ppc",
"run",
]
[tasks.all] [tasks.all]
dependencies = [ dependencies = ["arm", "aarch64", "x86_64", "i386", "mips", "ppc"]
"arm",
"aarch64",
"x86_64",
"i386",
"mips",
"ppc"
]
[tasks.lightweight] [tasks.lightweight]
dependencies = [ dependencies = ["arm", "x86_64"]
"arm",
"x86_64",
]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "qemu_launcher" name = "qemu_launcher"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
@ -33,12 +36,21 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
vergen = { version = "8.2", features = ["build", "cargo", "git", "gitcl", "rustc", "si"] } vergen = { version = "8.2", features = [
"build",
"cargo",
"git",
"gitcl",
"rustc",
"si",
] }
[dependencies] [dependencies]
clap = { version = "4.3", features = ["derive", "string"] } clap = { version = "4.3", features = ["derive", "string"] }
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/", features = ["errors_backtrace"] } libafl_bolts = { path = "../../../libafl_bolts/", features = [
"errors_backtrace",
] }
libafl_qemu = { path = "../../../libafl_qemu/", features = ["usermode"] } libafl_qemu = { path = "../../../libafl_qemu/", features = ["usermode"] }
log = { version = "0.4.20" } log = { version = "0.4.20" }
nix = { version = "0.29", features = ["fs"] } nix = { version = "0.29", features = ["fs"] }

View File

@ -1,6 +1,8 @@
[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"] }} 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 = ""
@ -101,7 +103,9 @@ windows_alias = "unsupported"
[tasks.zlib_unix_wget] [tasks.zlib_unix_wget]
dependencies = ["deps_dir"] dependencies = ["deps_dir"]
condition = { files_not_exist = [ "${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/zlib-1.2.13" ] } condition = { files_not_exist = [
"${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/zlib-1.2.13",
] }
script_runner = "@shell" script_runner = "@shell"
# NOTE: There's no specific reason we're using an old version of zlib, # NOTE: There's no specific reason we're using an old version of zlib,
# but newer versions get moved to fossils/ after a while. # but newer versions get moved to fossils/ after a while.
@ -140,7 +144,9 @@ windows_alias = "unsupported"
[tasks.libpng_unix_wget] [tasks.libpng_unix_wget]
dependencies = ["deps_dir"] dependencies = ["deps_dir"]
condition = { files_not_exist = [ "${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/libpng-1.6.37" ] } condition = { files_not_exist = [
"${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/deps/libpng-1.6.37",
] }
script_runner = "@shell" script_runner = "@shell"
script = ''' script = '''
wget \ wget \
@ -186,8 +192,10 @@ args = [
"build", "build",
"--profile", "--profile",
"${PROFILE}", "${PROFILE}",
"--features", "${FEATURE}", "--features",
"--target-dir", "${TARGET_DIR}" "${FEATURE}",
"--target-dir",
"${TARGET_DIR}",
] ]
[tasks.fuzzer] [tasks.fuzzer]
@ -228,13 +236,20 @@ windows_alias = "unsupported"
[tasks.debug_unix] [tasks.debug_unix]
command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}" command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}"
args = [ args = [
"--input", "./corpus", "--input",
"--output", "${TARGET_DIR}/output/", "./corpus",
"--log", "${TARGET_DIR}/output/log.txt", "--output",
"--cores", "0-7", "${TARGET_DIR}/output/",
"--asan-cores", "0-3", "--log",
"--cmplog-cores", "2-5", "${TARGET_DIR}/output/log.txt",
"--iterations", "100000", "--cores",
"0-7",
"--asan-cores",
"0-3",
"--cmplog-cores",
"2-5",
"--iterations",
"100000",
"--verbose", "--verbose",
"--", "--",
"${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}", "${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}",
@ -249,13 +264,20 @@ windows_alias = "unsupported"
[tasks.run_unix] [tasks.run_unix]
command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}" command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}"
args = [ args = [
"--input", "./corpus", "--input",
"--output", "${TARGET_DIR}/output/", "./corpus",
"--log", "${TARGET_DIR}/output/log.txt", "--output",
"--cores", "0-7", "${TARGET_DIR}/output/",
"--asan-cores", "0-3", "--log",
"--cmplog-cores", "2-5", "${TARGET_DIR}/output/log.txt",
"--iterations", "1000000", "--cores",
"0-7",
"--asan-cores",
"0-3",
"--cmplog-cores",
"2-5",
"--iterations",
"1000000",
"--tui", "--tui",
"--", "--",
"${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}", "${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}",
@ -270,10 +292,14 @@ windows_alias = "unsupported"
[tasks.single_unix] [tasks.single_unix]
command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}" command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}"
args = [ args = [
"--input", "./corpus", "--input",
"--output", "${TARGET_DIR}/output/", "./corpus",
"--log", "${TARGET_DIR}/output/log.txt", "--output",
"--cores", "0", "${TARGET_DIR}/output/",
"--log",
"${TARGET_DIR}/output/log.txt",
"--cores",
"0",
"--", "--",
"${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}", "${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}",
] ]
@ -287,11 +313,16 @@ windows_alias = "unsupported"
[tasks.asan_unix] [tasks.asan_unix]
command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}" command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}"
args = [ args = [
"--input", "./corpus", "--input",
"--output", "${TARGET_DIR}/output/", "./corpus",
"--log", "${TARGET_DIR}/output/log.txt", "--output",
"--cores", "0", "${TARGET_DIR}/output/",
"--asan-cores", "0", "--log",
"${TARGET_DIR}/output/log.txt",
"--cores",
"0",
"--asan-cores",
"0",
"--", "--",
"${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}", "${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}",
] ]
@ -305,11 +336,16 @@ windows_alias = "unsupported"
[tasks.asan_guest_unix] [tasks.asan_guest_unix]
command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}" command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_launcher-${CARGO_MAKE_PROFILE}"
args = [ args = [
"--input", "./corpus", "--input",
"--output", "${TARGET_DIR}/output/", "./corpus",
"--log", "${TARGET_DIR}/output/log.txt", "--output",
"--cores", "0", "${TARGET_DIR}/output/",
"--asan-guest-cores", "0", "--log",
"${TARGET_DIR}/output/log.txt",
"--cores",
"0",
"--asan-guest-cores",
"0",
"--", "--",
"${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}", "${TARGET_DIR}/libpng-harness-${CARGO_MAKE_PROFILE}",
] ]
@ -358,58 +394,27 @@ cargo clean
[tasks.arm] [tasks.arm]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "arm", "run"]
"make",
"-p", "arm",
"run",
]
[tasks.aarch64] [tasks.aarch64]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "aarch64", "run"]
"make",
"-p", "aarch64",
"run",
]
[tasks.x86_64] [tasks.x86_64]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "x86_64", "run"]
"make",
"-p", "x86_64",
"run",
]
[tasks.i386] [tasks.i386]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "i386", "run"]
"make",
"-p", "i386",
"run",
]
[tasks.mips] [tasks.mips]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "mips", "run"]
"make",
"-p", "mips",
"run",
]
[tasks.ppc] [tasks.ppc]
command = "cargo" command = "cargo"
args = [ args = ["make", "-p", "ppc", "run"]
"make",
"-p", "ppc",
"run",
]
[tasks.all] [tasks.all]
dependencies = [ dependencies = ["arm", "aarch64", "x86_64", "i386", "mips", "ppc"]
"arm",
"aarch64",
"x86_64",
"i386",
"mips",
"ppc"
]

View File

@ -33,12 +33,7 @@ mysql_send_query = {param = 1}
# We do not need this as we watch the SYS_execve syscall, this is just an # We do not need this as we watch the SYS_execve syscall, this is just an
# example. # example.
[cmd] [cmd]
tokens = [ tokens = ["'\"FUZZ\"'", "\";FUZZ;\"", "';FUZZ;'", "$(FUZZ)"]
"'\"FUZZ\"'",
"\";FUZZ;\"",
"';FUZZ;'",
"$(FUZZ)",
]
matches = ["'\"FUZZ\"'"] matches = ["'\"FUZZ\"'"]
[cmd.functions] [cmd.functions]

View File

@ -1,14 +1,18 @@
[package] [package]
name = "qemu_systemmode" name = "qemu_systemmode"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
[features] [features]
default = ["std", "classic"] default = ["std", "classic"]
std = [] std = []
classic = [] # The classic way to interact with LibAFL QEMU, with direct calls to QEMU's functions classic = [
] # The classic way to interact with LibAFL QEMU, with direct calls to QEMU's functions
breakpoint = [] # Uses the command system, with breakpoints breakpoint = [] # Uses the command system, with breakpoints
sync_exit = [] # Uses the command system, with sync exit. sync_exit = [] # Uses the command system, with sync exit.
@ -23,8 +27,14 @@ codegen-units = 1
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_qemu = { path = "../../../libafl_qemu/", features = ["arm", "systemmode"] } libafl_qemu = { path = "../../../libafl_qemu/", features = [
libafl_qemu_sys = { path = "../../../libafl_qemu/libafl_qemu_sys", features = ["arm", "systemmode"] } "arm",
"systemmode",
] }
libafl_qemu_sys = { path = "../../../libafl_qemu/libafl_qemu_sys", features = [
"arm",
"systemmode",
] }
env_logger = "*" env_logger = "*"
[build-dependencies] [build-dependencies]

View File

@ -1,5 +1,4 @@
env_scripts = [ env_scripts = ['''
'''
#!@duckscript #!@duckscript
profile = get_env PROFILE profile = get_env PROFILE
@ -8,8 +7,7 @@ if eq ${profile} "dev"
else else
set_env PROFILE_DIR ${profile} set_env PROFILE_DIR ${profile}
end end
''', ''', '''
'''
#!@duckscript #!@duckscript
runs_on_ci = get_env RUN_ON_CI runs_on_ci = get_env RUN_ON_CI
@ -18,8 +16,7 @@ if ${runs_on_ci}
set_env TARGET_DIR ${cargo_target_dir} set_env TARGET_DIR ${cargo_target_dir}
set_env KERNEL ${cargo_target_dir}/example.elf set_env KERNEL ${cargo_target_dir}/example.elf
end end
''' ''']
]
[env] [env]
PROFILE = { value = "release", condition = { env_not_set = ["PROFILE"] } } PROFILE = { value = "release", condition = { env_not_set = ["PROFILE"] } }
@ -51,13 +48,17 @@ args = [
"-ffreestanding", "-ffreestanding",
"-nostartfiles", "-nostartfiles",
"-lgcc", "-lgcc",
"-T", "${CARGO_MAKE_WORKING_DIRECTORY}/example/mps2_m3.ld", "-T",
"${CARGO_MAKE_WORKING_DIRECTORY}/example/mps2_m3.ld",
"-mcpu=cortex-m3", "-mcpu=cortex-m3",
"${CARGO_MAKE_WORKING_DIRECTORY}/example/main.c", "${CARGO_MAKE_WORKING_DIRECTORY}/example/main.c",
"${CARGO_MAKE_WORKING_DIRECTORY}/example/startup.c", "${CARGO_MAKE_WORKING_DIRECTORY}/example/startup.c",
"-D", "${TARGET_DEFINE}", "-D",
"-I", "${TARGET_DIR}/${PROFILE_DIR}/include", "${TARGET_DEFINE}",
"-o", "${TARGET_DIR}/example.elf", "-I",
"${TARGET_DIR}/${PROFILE_DIR}/include",
"-o",
"${TARGET_DIR}/example.elf",
] ]
[tasks.build_fuzzer] [tasks.build_fuzzer]
@ -68,22 +69,30 @@ args = [
"--profile", "--profile",
"${PROFILE}", "${PROFILE}",
"--no-default-features", "--no-default-features",
"--features", "std,${FEATURE}", "--features",
"--target-dir", "${TARGET_DIR}", "std,${FEATURE}",
"--target-dir",
"${TARGET_DIR}",
] ]
dependencies = ["image"] dependencies = ["image"]
[tasks.run_fuzzer] [tasks.run_fuzzer]
command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_systemmode" command = "${TARGET_DIR}/${PROFILE_DIR}/qemu_systemmode"
args = [ args = [
"-icount", "shift=auto,align=off,sleep=off", "-icount",
"-machine", "mps2-an385", "shift=auto,align=off,sleep=off",
"-monitor", "null", "-machine",
"-kernel", "${TARGET_DIR}/example.elf", "mps2-an385",
"-serial", "null", "-monitor",
"null",
"-kernel",
"${TARGET_DIR}/example.elf",
"-serial",
"null",
"-nographic", "-nographic",
"-snapshot", "-snapshot",
"-drive", "if=none,format=qcow2,file=${TARGET_DIR}/dummy.qcow2", "-drive",
"if=none,format=qcow2,file=${TARGET_DIR}/dummy.qcow2",
"-S", "-S",
] ]
dependencies = ["target"] dependencies = ["target"]
@ -109,59 +118,55 @@ fi
command = "cargo" command = "cargo"
args = [ args = [
"make", "make",
"-e", "FEATURE=classic", "-e",
"-e", "TARGET_DEFINE=TARGET_CLASSIC", "FEATURE=classic",
"-e",
"TARGET_DEFINE=TARGET_CLASSIC",
"build_fuzzer", "build_fuzzer",
] ]
[tasks.test_classic] [tasks.test_classic]
command = "cargo" command = "cargo"
args = [ args = ["make", "-e", "FEATURE=classic", "test_fuzzer"]
"make",
"-e", "FEATURE=classic",
"test_fuzzer",
]
[tasks.build_breakpoint] [tasks.build_breakpoint]
command = "cargo" command = "cargo"
args = [ args = [
"make", "make",
"-e", "FEATURE=breakpoint", "-e",
"-e", "TARGET_DEFINE=TARGET_BREAKPOINT", "FEATURE=breakpoint",
"-e",
"TARGET_DEFINE=TARGET_BREAKPOINT",
"build_fuzzer", "build_fuzzer",
] ]
[tasks.test_breakpoint] [tasks.test_breakpoint]
command = "cargo" command = "cargo"
args = [ args = ["make", "-e", "FEATURE=breakpoint", "test_fuzzer"]
"make",
"-e", "FEATURE=breakpoint",
"test_fuzzer",
]
[tasks.build_sync_exit] [tasks.build_sync_exit]
command = "cargo" command = "cargo"
args = [ args = [
"make", "make",
"-e", "FEATURE=sync_exit", "-e",
"-e", "TARGET_DEFINE=TARGET_SYNC_EXIT", "FEATURE=sync_exit",
"-e",
"TARGET_DEFINE=TARGET_SYNC_EXIT",
"build_fuzzer", "build_fuzzer",
] ]
[tasks.test_sync_exit] [tasks.test_sync_exit]
command = "cargo" command = "cargo"
args = [ args = ["make", "-e", "FEATURE=sync_exit", "test_fuzzer"]
"make",
"-e", "FEATURE=sync_exit",
"test_fuzzer",
]
[tasks.classic] [tasks.classic]
command = "cargo" command = "cargo"
args = [ args = [
"make", "make",
"-e", "FEATURE=classic", "-e",
"-e", "TARGET_DEFINE=TARGET_CLASSIC", "FEATURE=classic",
"-e",
"TARGET_DEFINE=TARGET_CLASSIC",
"run_fuzzer", "run_fuzzer",
] ]
@ -169,8 +174,10 @@ args = [
command = "cargo" command = "cargo"
args = [ args = [
"make", "make",
"-e", "FEATURE=breakpoint", "-e",
"-e", "TARGET_DEFINE=TARGET_BREAKPOINT", "FEATURE=breakpoint",
"-e",
"TARGET_DEFINE=TARGET_BREAKPOINT",
"run_fuzzer", "run_fuzzer",
] ]
@ -178,8 +185,10 @@ args = [
command = "cargo" command = "cargo"
args = [ args = [
"make", "make",
"-e", "FEATURE=sync_exit", "-e",
"-e", "TARGET_DEFINE=TARGET_SYNC_EXIT", "FEATURE=sync_exit",
"-e",
"TARGET_DEFINE=TARGET_SYNC_EXIT",
"run_fuzzer", "run_fuzzer",
] ]

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libfuzzer_stb_image" name = "libfuzzer_stb_image"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
build = "build.rs" build = "build.rs"
@ -18,7 +21,12 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer", "libfuzzer_no_link_main"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_edges",
"sancov_cmplog",
"libfuzzer",
"libfuzzer_no_link_main",
] }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }
[build-dependencies] [build-dependencies]

View File

@ -2,7 +2,9 @@
[env] [env]
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" } PROFILE = { value = "release" }
PROFILE_DIR = { value = "release" } PROFILE_DIR = { value = "release" }
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' } } 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' } }

View File

@ -1,7 +1,9 @@
# Variables # Variables
[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" } PROFILE = { value = "release" }
PROFILE_DIR = { value = "release" } PROFILE_DIR = { value = "release" }
FUZZER_NAME = 'libfuzzer_stb_image_concolic' FUZZER_NAME = 'libfuzzer_stb_image_concolic'

View File

@ -1,7 +1,11 @@
[package] [package]
name = "libfuzzer_stb_image_concolic" name = "libfuzzer_stb_image_concolic"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>", "Julius Hohnerlein"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
"Julius Hohnerlein",
]
edition = "2021" edition = "2021"
build = "build.rs" build = "build.rs"
@ -18,7 +22,11 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../../libafl/", features = ["concolic_mutation"] } libafl = { path = "../../../../libafl/", features = ["concolic_mutation"] }
libafl_bolts = { path = "../../../../libafl_bolts/" } libafl_bolts = { path = "../../../../libafl_bolts/" }
libafl_targets = { path = "../../../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] } libafl_targets = { path = "../../../../libafl_targets/", features = [
"sancov_pcguard_edges",
"sancov_cmplog",
"libfuzzer",
] }
clap = { version = "4.0", features = ["derive"] } clap = { version = "4.0", features = ["derive"] }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }

View File

@ -1,10 +1,19 @@
[package] [package]
name = "libfuzzer_stb_image_sugar" name = "libfuzzer_stb_image_sugar"
version = "0.13.0" version = "0.13.0"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
edition = "2021" edition = "2021"
build = "build.rs" build = "build.rs"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
[features] [features]
default = ["std"] default = ["std"]
@ -19,7 +28,11 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] } libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_edges",
"sancov_cmplog",
"libfuzzer",
] }
libafl_sugar = { path = "../../../libafl_sugar/" } libafl_sugar = { path = "../../../libafl_sugar/" }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }

View File

@ -2,7 +2,9 @@
[env] [env]
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" } PROFILE = { value = "release" }
PROFILE_DIR = { value = "release" } PROFILE_DIR = { value = "release" }
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' } } 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' } }

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libafl" name = "libafl"
version = "0.13.2" version = "0.13.2"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
description = "Slot your own fuzzers together and extend their features using Rust" description = "Slot your own fuzzers together and extend their features using Rust"
documentation = "https://docs.rs/libafl" documentation = "https://docs.rs/libafl"
repository = "https://github.com/AFLplusplus/LibAFL/" repository = "https://github.com/AFLplusplus/LibAFL/"
@ -9,7 +12,13 @@ readme = "../README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "testing", "security"] keywords = ["fuzzing", "testing", "security"]
edition = "2021" edition = "2021"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
[package.metadata.docs.rs] [package.metadata.docs.rs]
features = ["document-features"] features = ["document-features"]
@ -17,14 +26,40 @@ all-features = true
rustc-args = ["--cfg", "docsrs"] rustc-args = ["--cfg", "docsrs"]
[features] [features]
default = ["std", "derive", "llmp_compression", "llmp_small_maps", "llmp_broker_timeouts", "rand_trait", "fork", "prelude", "gzip", "regex", "serdeany_autoreg", "tui_monitor", "libafl_bolts/xxh3"] default = [
"std",
"derive",
"llmp_compression",
"llmp_small_maps",
"llmp_broker_timeouts",
"rand_trait",
"fork",
"prelude",
"gzip",
"regex",
"serdeany_autoreg",
"tui_monitor",
"libafl_bolts/xxh3",
]
document-features = ["dep:document-features"] document-features = ["dep:document-features"]
#! # Feature Flags #! # Feature Flags
#! ### General Features #! ### General Features
## Enables features that need rust's `std` lib to work, like print, env, ... support ## Enables features that need rust's `std` lib to work, like print, env, ... support
std = ["serde_json", "serde_json/std", "nix", "serde/std", "bincode", "wait-timeout", "uuid", "backtrace", "serial_test", "libafl_bolts/std", "typed-builder"] std = [
"serde_json",
"serde_json/std",
"nix",
"serde/std",
"bincode",
"wait-timeout",
"uuid",
"backtrace",
"serial_test",
"libafl_bolts/std",
"typed-builder",
]
## Tracks the Feedbacks and the Objectives that were interesting for a Testcase ## Tracks the Feedbacks and the Objectives that were interesting for a Testcase
track_hit_feedbacks = ["std"] track_hit_feedbacks = ["std"]
@ -77,7 +112,13 @@ casr = ["libcasr", "std", "regex"]
cmin = ["z3"] cmin = ["z3"]
## Enables the `PrometheusMonitor` which will monitor stats via UDP, for `Grafana` and others. ## Enables the `PrometheusMonitor` which will monitor stats via UDP, for `Grafana` and others.
prometheus_monitor = ["std", "async-std", "prometheus-client", "tide", "futures"] prometheus_monitor = [
"std",
"async-std",
"prometheus-client",
"tide",
"futures",
]
## Include a simple concolic mutator based on z3 ## Include a simple concolic mutator based on z3
concolic_mutation = ["z3"] concolic_mutation = ["z3"]
@ -94,7 +135,10 @@ multipart_inputs = ["arrayvec", "rand_trait"]
#! ## LibAFL-Bolts Features #! ## LibAFL-Bolts Features
## Provide the `#[derive(SerdeAny)]` macro. ## Provide the `#[derive(SerdeAny)]` macro.
derive = ["libafl_derive", "libafl_bolts/derive"] # provide `derive(SerdeAny) macro. derive = [
"libafl_derive",
"libafl_bolts/derive",
] # provide `derive(SerdeAny) macro.
## Expose `libafl_bolts::cli` for easy commandline parsing of common fuzzer settings ## Expose `libafl_bolts::cli` for easy commandline parsing of common fuzzer settings
cli = ["libafl_bolts/cli"] cli = ["libafl_bolts/cli"]
@ -128,10 +172,19 @@ llmp_compression = ["libafl_bolts/llmp_compression"]
llmp_debug = ["std", "libafl_bolts/llmp_debug"] llmp_debug = ["std", "libafl_bolts/llmp_debug"]
## Reduces the initial map size for llmp ## Reduces the initial map size for llmp
llmp_small_maps = ["libafl_bolts/llmp_small_maps"] # reduces initial map size for llmp llmp_small_maps = [
"libafl_bolts/llmp_small_maps",
] # reduces initial map size for llmp
## Grammar mutator. Requires nightly. ## Grammar mutator. Requires nightly.
nautilus = ["std", "serde_json/std", "pyo3", "rand_trait", "regex-syntax", "regex"] nautilus = [
"std",
"serde_json/std",
"pyo3",
"rand_trait",
"regex-syntax",
"regex",
]
[build-dependencies] [build-dependencies]
rustversion = "1.0" rustversion = "1.0"
@ -142,15 +195,25 @@ serde_json = { version = "1.0", default-features = false, features = ["alloc"] }
bytecount = "0.6.3" bytecount = "0.6.3"
[dependencies] [dependencies]
libafl_bolts = { version = "0.13.2", path = "../libafl_bolts", default-features = false, features = ["alloc"] } libafl_bolts = { version = "0.13.2", path = "../libafl_bolts", default-features = false, features = [
"alloc",
] }
libafl_derive = { version = "0.13.2", path = "../libafl_derive", optional = true } libafl_derive = { version = "0.13.2", path = "../libafl_derive", optional = true }
rustversion = "1.0" rustversion = "1.0"
tuple_list = { version = "0.1.3" } tuple_list = { version = "0.1.3" }
hashbrown = { version = "0.14", features = ["serde", "ahash"], default-features = false } # A faster hashmap, nostd compatible hashbrown = { version = "0.14", features = [
"serde",
"ahash",
], default-features = false } # A faster hashmap, nostd compatible
num-traits = { version = "0.2", default-features = false } num-traits = { version = "0.2", default-features = false }
serde = { version = "1.0", default-features = false, features = ["alloc", "derive"] } # serialization lib serde = { version = "1.0", default-features = false, features = [
postcard = { version = "1.0", features = ["alloc"], default-features = false } # no_std compatible serde serialization format "alloc",
"derive",
] } # serialization lib
postcard = { version = "1.0", features = [
"alloc",
], default-features = false } # no_std compatible serde serialization format
bincode = { version = "1.3", optional = true } bincode = { version = "1.3", optional = true }
c2rust-bitfields = { version = "0.18", features = ["no_std"] } c2rust-bitfields = { version = "0.18", features = ["no_std"] }
ahash = { version = "0.8", default-features = false } # The hash function already used in hashbrown ahash = { version = "0.8", default-features = false } # The hash function already used in hashbrown
@ -158,12 +221,16 @@ meminterval = { version = "0.4", features = ["serde"] }
backtrace = { version = "0.3", optional = true } # Used to get the stacktrace in StacktraceObserver backtrace = { version = "0.3", optional = true } # Used to get the stacktrace in StacktraceObserver
typed-builder = { version = "0.18", optional = true } # Implement the builder pattern at compiletime typed-builder = { version = "0.18", optional = true } # Implement the builder pattern at compiletime
serde_json = { version = "1.0", optional = true, default-features = false, features = ["alloc"] } serde_json = { version = "1.0", optional = true, default-features = false, features = [
"alloc",
] }
nix = { version = "0.29", optional = true } nix = { version = "0.29", optional = true }
regex = { version = "1", optional = true } regex = { version = "1", optional = true }
uuid = { version = "1.8", optional = true, features = ["serde", "v4"] } uuid = { version = "1.8", optional = true, features = ["serde", "v4"] }
libm = "0.2" libm = "0.2"
ratatui = { version = "0.26", default-features = false, features = ['crossterm'], optional = true } # Commandline rendering, for TUI Monitor ratatui = { version = "0.26", default-features = false, features = [
'crossterm',
], optional = true } # Commandline rendering, for TUI Monitor
crossterm = { version = "0.27", optional = true } crossterm = { version = "0.27", optional = true }
prometheus-client = { version = "0.22", optional = true } # For the prometheus monitor prometheus-client = { version = "0.22", optional = true } # For the prometheus monitor
@ -171,7 +238,15 @@ tide = { version = "0.16", optional = true }
async-std = { version = "1.12", features = ["attributes"], optional = true } async-std = { version = "1.12", features = ["attributes"], optional = true }
futures = { version = "0.3", optional = true } futures = { version = "0.3", optional = true }
log = { version = "0.4" } log = { version = "0.4" }
tokio = { version = "1.38", optional = true, features = ["sync", "net", "rt", "io-util", "macros", "rt-multi-thread", "time"] } # used for TCP Event Manager and multi-machine tokio = { version = "1.38", optional = true, features = [
"sync",
"net",
"rt",
"io-util",
"macros",
"rt-multi-thread",
"time",
] } # used for TCP Event Manager and multi-machine
enumflags2 = { version = "0.7", optional = true } enumflags2 = { version = "0.7", optional = true }
wait-timeout = { version = "0.2", optional = true } # used by CommandExecutor to wait for child process wait-timeout = { version = "0.2", optional = true } # used by CommandExecutor to wait for child process
@ -180,7 +255,9 @@ concat-idents = { version = "1.1.3", optional = true }
libcasr = { version = "2.7", optional = true } libcasr = { version = "2.7", optional = true }
bitvec = { version = "1.0", optional = true, features = ["serde"] } # used for string range storage bitvec = { version = "1.0", optional = true, features = [
"serde",
] } # used for string range storage
arrayvec = { version = "0.7.4", optional = true, default-features = false } # used for fixed-len collects arrayvec = { version = "0.7.4", optional = true, default-features = false } # used for fixed-len collects
@ -191,7 +268,9 @@ pyo3 = { version = "0.18.3", optional = true } # For nautilus
regex-syntax = { version = "0.8.3", optional = true } # For nautilus regex-syntax = { version = "0.8.3", optional = true } # For nautilus
# optional-dev deps (change when target.'cfg(accessible(::std))'.test-dependencies will be stable) # optional-dev deps (change when target.'cfg(accessible(::std))'.test-dependencies will be stable)
serial_test = { version = "3", optional = true, default-features = false, features = ["logging"] } serial_test = { version = "3", optional = true, default-features = false, features = [
"logging",
] }
# Document all features of this crate (for `cargo doc`) # Document all features of this crate (for `cargo doc`)
document-features = { version = "0.2", optional = true } document-features = { version = "0.2", optional = true }
@ -203,7 +282,15 @@ libc = "0.2" # For (*nix) libc
z3 = { version = "0.12.0", optional = true } # for concolic mutation z3 = { version = "0.12.0", optional = true } # for concolic mutation
[target.'cfg(windows)'.dependencies] [target.'cfg(windows)'.dependencies]
windows = { version = "0.51.1", features = ["Win32_Foundation", "Win32_System_Threading", "Win32_System_Diagnostics_Debug", "Win32_System_Kernel", "Win32_System_Memory", "Win32_Security", "Win32_System_SystemInformation"] } windows = { version = "0.51.1", features = [
"Win32_Foundation",
"Win32_System_Threading",
"Win32_System_Diagnostics_Debug",
"Win32_System_Kernel",
"Win32_System_Memory",
"Win32_Security",
"Win32_System_SystemInformation",
] }
[target.'cfg(windows)'.build-dependencies] [target.'cfg(windows)'.build-dependencies]
windows = "0.51.1" windows = "0.51.1"

View File

@ -1,7 +1,10 @@
[package] [package]
name = "libafl_bolts" name = "libafl_bolts"
version = "0.13.2" version = "0.13.2"
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
description = "Low-level bolts to create fuzzers and so much more" description = "Low-level bolts to create fuzzers and so much more"
documentation = "https://docs.rs/libafl" documentation = "https://docs.rs/libafl"
repository = "https://github.com/AFLplusplus/LibAFL/" repository = "https://github.com/AFLplusplus/LibAFL/"
@ -9,7 +12,13 @@ readme = "./README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "testing", "security"] keywords = ["fuzzing", "testing", "security"]
edition = "2021" edition = "2021"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
rust-version = "1.70.0" rust-version = "1.70.0"
[package.metadata.docs.rs] [package.metadata.docs.rs]
@ -17,14 +26,36 @@ features = ["document-features"]
all-features = true all-features = true
[features] [features]
default = ["std", "derive", "llmp_compression", "llmp_small_maps", "rand_trait", "prelude", "gzip", "serdeany_autoreg", "alloc", "xxh3"] default = [
"std",
"derive",
"llmp_compression",
"llmp_small_maps",
"rand_trait",
"prelude",
"gzip",
"serdeany_autoreg",
"alloc",
"xxh3",
]
document-features = ["dep:document-features"] document-features = ["dep:document-features"]
#! # Feature Flags #! # Feature Flags
#! ### General Features #! ### General Features
## Enables features that need rust's `std` lib to work, like print, env, ... support ## Enables features that need rust's `std` lib to work, like print, env, ... support
std = ["serde_json", "serde_json/std", "hostname", "nix", "serde/std", "uuid", "backtrace", "uds", "serial_test", "alloc"] std = [
"serde_json",
"serde_json/std",
"hostname",
"nix",
"serde/std",
"uuid",
"backtrace",
"uds",
"serial_test",
"alloc",
]
## Enables all features that allocate in `no_std` ## Enables all features that allocate in `no_std`
alloc = ["serde/alloc", "hashbrown", "postcard", "erased-serde/alloc", "ahash"] alloc = ["serde/alloc", "hashbrown", "postcard", "erased-serde/alloc", "ahash"]
@ -96,29 +127,49 @@ libafl_derive = { version = "0.13.2", optional = true, path = "../libafl_derive"
static_assertions = "1.1.0" static_assertions = "1.1.0"
tuple_list = { version = "0.1.3" } tuple_list = { version = "0.1.3" }
hashbrown = { version = "0.14", features = ["serde", "ahash"], default-features = false, optional = true } # A faster hashmap, nostd compatible hashbrown = { version = "0.14", features = [
xxhash-rust = { version = "0.8.5", features = ["xxh3"], optional = true } # xxh3 hashing for rust "serde",
serde = { version = "1.0", default-features = false, features = ["derive"] } # serialization lib "ahash",
], default-features = false, optional = true } # A faster hashmap, nostd compatible
xxhash-rust = { version = "0.8.5", features = [
"xxh3",
], optional = true } # xxh3 hashing for rust
serde = { version = "1.0", default-features = false, features = [
"derive",
] } # serialization lib
erased-serde = { version = "0.4.5", default-features = false, optional = true } # erased serde erased-serde = { version = "0.4.5", default-features = false, optional = true } # erased serde
postcard = { version = "1.0", features = ["alloc"], default-features = false, optional = true } # no_std compatible serde serialization format postcard = { version = "1.0", features = [
"alloc",
], default-features = false, optional = true } # no_std compatible serde serialization format
num_enum = { version = "0.7", default-features = false } num_enum = { version = "0.7", default-features = false }
ahash = { version = "0.8", default-features = false, optional = true } # The hash function already used in hashbrown ahash = { version = "0.8", default-features = false, optional = true } # The hash function already used in hashbrown
backtrace = { version = "0.3", optional = true } # Used to get the stacktrace in StacktraceObserver backtrace = { version = "0.3", optional = true } # Used to get the stacktrace in StacktraceObserver
ctor = { optional = true, version = "0.2" } ctor = { optional = true, version = "0.2" }
serde_json = { version = "1.0", optional = true, default-features = false, features = ["alloc"] } serde_json = { version = "1.0", optional = true, default-features = false, features = [
"alloc",
] }
miniz_oxide = { version = "0.7.1", optional = true } miniz_oxide = { version = "0.7.1", optional = true }
hostname = { version = "^0.4", optional = true } # Is there really no gethostname in the stdlib? hostname = { version = "^0.4", optional = true } # Is there really no gethostname in the stdlib?
rand_core = { version = "0.6", optional = true } rand_core = { version = "0.6", optional = true }
nix = { version = "0.29", default-features = false, optional = true, features = ["signal", "socket", "poll"] } nix = { version = "0.29", default-features = false, optional = true, features = [
"signal",
"socket",
"poll",
] }
uuid = { version = "1.4", optional = true, features = ["serde", "v4"] } uuid = { version = "1.4", optional = true, features = ["serde", "v4"] }
clap = { version = "4.5", features = ["derive", "wrap_help"], optional = true } # CLI parsing, for libafl_bolts::cli / the `cli` feature clap = { version = "4.5", features = [
"derive",
"wrap_help",
], optional = true } # CLI parsing, for libafl_bolts::cli / the `cli` feature
log = { version = "0.4" } log = { version = "0.4" }
pyo3 = { version = "0.18", optional = true, features = ["serde", "macros"] } pyo3 = { version = "0.18", optional = true, features = ["serde", "macros"] }
# optional-dev deps (change when target.'cfg(accessible(::std))'.test-dependencies will be stable) # optional-dev deps (change when target.'cfg(accessible(::std))'.test-dependencies will be stable)
serial_test = { version = "3", optional = true, default-features = false, features = ["logging"] } serial_test = { version = "3", optional = true, default-features = false, features = [
"logging",
] }
# Document all features of this crate (for `cargo doc`) # Document all features of this crate (for `cargo doc`)
document-features = { version = "0.2", optional = true } document-features = { version = "0.2", optional = true }
@ -128,7 +179,16 @@ libc = "0.2" # For (*nix) libc
uds = { version = "0.4", optional = true, default-features = false } uds = { version = "0.4", optional = true, default-features = false }
[target.'cfg(windows)'.dependencies] [target.'cfg(windows)'.dependencies]
windows = { version = "0.51.1", features = ["Win32_Foundation", "Win32_System_Threading", "Win32_System_Diagnostics_Debug", "Win32_System_Kernel", "Win32_System_Memory", "Win32_Security", "Win32_System_SystemInformation", "Win32_System_Console"] } windows = { version = "0.51.1", features = [
"Win32_Foundation",
"Win32_System_Threading",
"Win32_System_Diagnostics_Debug",
"Win32_System_Kernel",
"Win32_System_Memory",
"Win32_Security",
"Win32_System_SystemInformation",
"Win32_System_Console",
] }
[target.'cfg(windows)'.build-dependencies] [target.'cfg(windows)'.build-dependencies]
windows = "0.51.1" windows = "0.51.1"

View File

@ -9,12 +9,28 @@ readme = "README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "testing", "compiler"] keywords = ["fuzzing", "testing", "compiler"]
edition = "2021" edition = "2021"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features] [features]
default = ["ddg-instr", "function-logging", "cmplog-routines", "autotokens", "coverage-accounting", "cmplog-instructions", "ctx", "dump-cfg", "profiling"] default = [
"ddg-instr",
"function-logging",
"cmplog-routines",
"autotokens",
"coverage-accounting",
"cmplog-instructions",
"ctx",
"dump-cfg",
"profiling",
]
# llvm passes # llvm passes
ddg-instr = [] ddg-instr = []
@ -35,4 +51,7 @@ which = "6.0"
glob = "0.3" glob = "0.3"
[dependencies] [dependencies]
serde = { version = "1.0", default-features = false, features = ["alloc", "derive"] } # serialization lib serde = { version = "1.0", default-features = false, features = [
"alloc",
"derive",
] } # serialization lib

View File

@ -2,14 +2,24 @@
name = "symcc_libafl" name = "symcc_libafl"
version = "0.13.2" version = "0.13.2"
edition = "2021" edition = "2021"
authors = ["Julius Hohnerlein <julihoh@users.noreply.github.com>", "Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Julius Hohnerlein <julihoh@users.noreply.github.com>",
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
description = "Meta package for symcc_runtime" description = "Meta package for symcc_runtime"
documentation = "https://docs.rs/symcc_libafl" documentation = "https://docs.rs/symcc_libafl"
repository = "https://github.com/AFLplusplus/LibAFL/" repository = "https://github.com/AFLplusplus/LibAFL/"
readme = "README.md" readme = "README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "testing", "security"] keywords = ["fuzzing", "testing", "security"]
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -2,7 +2,11 @@
name = "symcc_runtime" name = "symcc_runtime"
version = "0.13.2" version = "0.13.2"
edition = "2021" edition = "2021"
authors = ["Julius Hohnerlein <julihoh@users.noreply.github.com>", "Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Julius Hohnerlein <julihoh@users.noreply.github.com>",
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
description = "Build Concolic Tracing tools based on SymCC in Rust" description = "Build Concolic Tracing tools based on SymCC in Rust"
documentation = "https://docs.rs/symcc_runtime" documentation = "https://docs.rs/symcc_runtime"
repository = "https://github.com/AFLplusplus/LibAFL/" repository = "https://github.com/AFLplusplus/LibAFL/"
@ -10,7 +14,13 @@ readme = "README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "testing", "security"] keywords = ["fuzzing", "testing", "security"]
build = "build.rs" build = "build.rs"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@ -25,8 +35,14 @@ no-cpp-runtime = []
unchecked_unwrap = "4" unchecked_unwrap = "4"
ctor = "0.2" ctor = "0.2"
libc = "0.2" libc = "0.2"
libafl = { path = "../../libafl", version = "0.13.2", default-features=false, features=["std", "serdeany_autoreg"] } libafl = { path = "../../libafl", version = "0.13.2", default-features = false, features = [
libafl_bolts = { path = "../../libafl_bolts", version = "0.13.2", default-features=false, features=["std", "serdeany_autoreg"] } "std",
"serdeany_autoreg",
] }
libafl_bolts = { path = "../../libafl_bolts", version = "0.13.2", default-features = false, features = [
"std",
"serdeany_autoreg",
] }
[build-dependencies] [build-dependencies]
cmake = "0.1" cmake = "0.1"

View File

@ -9,7 +9,13 @@ repository = "https://github.com/AFLplusplus/LibAFL/"
readme = "../README.md" readme = "../README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "libafl", "ldpreload"] keywords = ["fuzzing", "libafl", "ldpreload"]
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -9,7 +9,13 @@ repository = "https://github.com/AFLplusplus/LibAFL/"
readme = "../README.md" readme = "../README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "libafl", "symbolic", "symcc", "symqemu", "fuzzer"] keywords = ["fuzzing", "libafl", "symbolic", "symcc", "symqemu", "fuzzer"]
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
[lib] [lib]
crate-type = ["cdylib"] crate-type = ["cdylib"]

View File

@ -9,7 +9,13 @@ readme = "../README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "testing"] keywords = ["fuzzing", "testing"]
edition = "2021" edition = "2021"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
[lib] [lib]
proc-macro = true proc-macro = true

View File

@ -14,13 +14,18 @@ categories = [
"emulators", "emulators",
"embedded", "embedded",
"os", "os",
"no-std" "no-std",
] ]
[package.metadata.docs.rs] [package.metadata.docs.rs]
no-default-features = true # We can't use auto-download inside docs.rs (no internet) no-default-features = true # We can't use auto-download inside docs.rs (no internet)
all-features = false all-features = false
features = ["cmplog", "serdeany_autoreg", "track_hit_feedbacks", "document-features"] features = [
"cmplog",
"serdeany_autoreg",
"track_hit_feedbacks",
"document-features",
]
[features] [features]
default = ["serdeany_autoreg", "auto-download"] default = ["serdeany_autoreg", "auto-download"]
@ -57,7 +62,7 @@ libafl = { path = "../libafl", default-features = false, version = "0.13.2", fea
libafl_bolts = { path = "../libafl_bolts", version = "0.13.2", default-features = false, features = [ libafl_bolts = { path = "../libafl_bolts", version = "0.13.2", default-features = false, features = [
"std", "std",
"derive", "derive",
"frida_cli" "frida_cli",
] } ] }
libafl_targets = { path = "../libafl_targets", version = "0.13.2", features = [ libafl_targets = { path = "../libafl_targets", version = "0.13.2", features = [
"std", "std",
@ -101,7 +106,9 @@ winsafe = {version = "0.0.21", features = ["kernel"]}
[dev-dependencies] [dev-dependencies]
serial_test = { version = "3", default-features = false, features = ["logging"] } serial_test = { version = "3", default-features = false, features = [
"logging",
] }
clap = { version = "4.5", features = ["derive"] } clap = { version = "4.5", features = ["derive"] }
libloading = "0.8" libloading = "0.8"
mimalloc = { version = "0.1", default-features = false } mimalloc = { version = "0.1", default-features = false }

View File

@ -9,12 +9,7 @@ keywords = ["fuzzing", "testing", "security"]
edition = "2021" edition = "2021"
categories = ["development-tools::testing"] categories = ["development-tools::testing"]
include = [ include = ["/src", "/Cargo.toml", "/build.rs", "/runtime"]
"/src",
"/Cargo.toml",
"/build.rs",
"/runtime",
]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -10,7 +10,10 @@ publish = false
default = ["fork"] default = ["fork"]
## Enables forking mode for the LibAFL launcher (instead of starting new processes) ## Enables forking mode for the LibAFL launcher (instead of starting new processes)
fork = ["libafl/fork"] fork = ["libafl/fork"]
track_hit_feedbacks = ["libafl/track_hit_feedbacks", "libafl_targets/track_hit_feedbacks"] track_hit_feedbacks = [
"libafl/track_hit_feedbacks",
"libafl_targets/track_hit_feedbacks",
]
[profile.release] [profile.release]
lto = true lto = true
@ -29,9 +32,38 @@ name = "afl_libfuzzer_runtime" # historically, cargo-fuzz strips double-prefixes
crate-type = ["staticlib", "rlib"] crate-type = ["staticlib", "rlib"]
[dependencies] [dependencies]
libafl = { path = "../libafl", default-features = false, features = ["std", "derive", "llmp_compression", "rand_trait", "regex", "errors_backtrace", "serdeany_autoreg", "tui_monitor", "unicode"] } libafl = { path = "../libafl", default-features = false, features = [
libafl_bolts = { path = "../libafl_bolts", default-features = false, features = ["std", "derive", "llmp_compression", "rand_trait", "serdeany_autoreg", "errors_backtrace"] } "std",
libafl_targets = { path = "../libafl_targets", features = ["sancov_8bit", "sancov_cmplog", "sancov_value_profile", "sancov_pcguard", "libfuzzer", "libfuzzer_oom", "libfuzzer_define_run_driver", "libfuzzer_interceptors", "sanitizers_flags", "whole_archive", "sanitizer_interfaces"] } "derive",
"llmp_compression",
"rand_trait",
"regex",
"errors_backtrace",
"serdeany_autoreg",
"tui_monitor",
"unicode",
] }
libafl_bolts = { path = "../libafl_bolts", default-features = false, features = [
"std",
"derive",
"llmp_compression",
"rand_trait",
"serdeany_autoreg",
"errors_backtrace",
] }
libafl_targets = { path = "../libafl_targets", features = [
"sancov_8bit",
"sancov_cmplog",
"sancov_value_profile",
"sancov_pcguard",
"libfuzzer",
"libfuzzer_oom",
"libfuzzer_define_run_driver",
"libfuzzer_interceptors",
"sanitizers_flags",
"whole_archive",
"sanitizer_interfaces",
] }
ahash = { version = "0.8.3", default-features = false } ahash = { version = "0.8.3", default-features = false }
libc = "0.2.1" libc = "0.2.1"

View File

@ -9,15 +9,32 @@ repository = "https://github.com/AFLplusplus/LibAFL/"
readme = "../README.md" readme = "../README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "testing", "security"] keywords = ["fuzzing", "testing", "security"]
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[target.'cfg(target_os = "linux")'.dependencies] [target.'cfg(target_os = "linux")'.dependencies]
libnyx = { git = "https://github.com/nyx-fuzz/libnyx.git", rev = "6833d236dfe785a8a23d8c8d79e74c99fa635004" } libnyx = { git = "https://github.com/nyx-fuzz/libnyx.git", rev = "6833d236dfe785a8a23d8c8d79e74c99fa635004" }
libafl = { path = "../libafl", version = "0.13.2", features = ["std", "libafl_derive", "frida_cli" ]} libafl = { path = "../libafl", version = "0.13.2", features = [
libafl_bolts = { path = "../libafl_bolts", version = "0.13.2", features = ["std", "libafl_derive", "frida_cli" ]} "std",
libafl_targets = { path = "../libafl_targets", version = "0.13.2", features = ["std", "sancov_cmplog"] } "libafl_derive",
"frida_cli",
] }
libafl_bolts = { path = "../libafl_bolts", version = "0.13.2", features = [
"std",
"libafl_derive",
"frida_cli",
] }
libafl_targets = { path = "../libafl_targets", version = "0.13.2", features = [
"std",
"sancov_cmplog",
] }
nix = { version = "0.29", features = ["fs"] } nix = { version = "0.29", features = ["fs"] }
typed-builder = "0.18" typed-builder = "0.18"

View File

@ -9,16 +9,30 @@ readme = "../README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "qemu", "instrumentation"] keywords = ["fuzzing", "qemu", "instrumentation"]
edition = "2021" edition = "2021"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
[package.metadata.docs.rs] [package.metadata.docs.rs]
features = ["document-features", "default", "python", "x86_64", "usermode"] features = ["document-features", "default", "python", "x86_64", "usermode"]
rustdoc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"]
[features] [features]
default = ["fork", "build_libgasan", "build_libqasan", "serdeany_autoreg", "injections"] default = [
"fork",
"build_libgasan",
"build_libqasan",
"serdeany_autoreg",
"injections",
]
document-features = ["dep:document-features"] document-features = ["dep:document-features"]
paranoid_debug = ["libafl_qemu_sys/paranoid_debug"] # Will perform as many checks as possible. The target will be greatly slowed down. paranoid_debug = [
"libafl_qemu_sys/paranoid_debug",
] # Will perform as many checks as possible. The target will be greatly slowed down.
#! # Feature Flags #! # Feature Flags
#! ### General Features #! ### General Features
@ -39,7 +53,9 @@ x86_64 = ["libafl_qemu_sys/x86_64"]
i386 = ["libafl_qemu_sys/i386"] # build qemu for i386 i386 = ["libafl_qemu_sys/i386"] # build qemu for i386
arm = ["libafl_qemu_sys/arm"] # build qemu for arm arm = ["libafl_qemu_sys/arm"] # build qemu for arm
aarch64 = ["libafl_qemu_sys/aarch64"] # build qemu for aarch64 aarch64 = ["libafl_qemu_sys/aarch64"] # build qemu for aarch64
mips = ["libafl_qemu_sys/mips"] # build qemu for mips (el, use with the 'be' feature of mips be) mips = [
"libafl_qemu_sys/mips",
] # build qemu for mips (el, use with the 'be' feature of mips be)
ppc = ["libafl_qemu_sys/ppc"] # build qemu for powerpc ppc = ["libafl_qemu_sys/ppc"] # build qemu for powerpc
hexagon = ["libafl_qemu_sys/hexagon"] # build qemu for hexagon hexagon = ["libafl_qemu_sys/hexagon"] # build qemu for hexagon
@ -56,7 +72,10 @@ systemmode = ["libafl_qemu_sys/systemmode"]
## Automatically register all `#[derive(SerdeAny)]` types at startup. ## Automatically register all `#[derive(SerdeAny)]` types at startup.
serdeany_autoreg = ["libafl_bolts/serdeany_autoreg"] serdeany_autoreg = ["libafl_bolts/serdeany_autoreg"]
slirp = [ "systemmode", "libafl_qemu_sys/slirp" ] # build qemu with host libslirp (for user networking) slirp = [
"systemmode",
"libafl_qemu_sys/slirp",
] # build qemu with host libslirp (for user networking)
# Requires the binary's build.rs to call `build_libafl_qemu` # Requires the binary's build.rs to call `build_libafl_qemu`
shared = ["libafl_qemu_sys/shared"] shared = ["libafl_qemu_sys/shared"]
@ -66,13 +85,24 @@ shared = [ "libafl_qemu_sys/shared" ]
clippy = ["libafl_qemu_sys/clippy"] clippy = ["libafl_qemu_sys/clippy"]
[dependencies] [dependencies]
libafl = { path = "../libafl", version = "0.13.2", default-features = false, features = ["std", "derive", "regex"] } libafl = { path = "../libafl", version = "0.13.2", default-features = false, features = [
libafl_bolts = { path = "../libafl_bolts", version = "0.13.2", default-features = false, features = ["std", "derive"] } "std",
"derive",
"regex",
] }
libafl_bolts = { path = "../libafl_bolts", version = "0.13.2", default-features = false, features = [
"std",
"derive",
] }
libafl_targets = { path = "../libafl_targets", version = "0.13.2" } libafl_targets = { path = "../libafl_targets", version = "0.13.2" }
libafl_qemu_sys = { path = "./libafl_qemu_sys", version = "0.13.2" } libafl_qemu_sys = { path = "./libafl_qemu_sys", version = "0.13.2" }
serde = { version = "1.0", default-features = false, features = ["alloc"] } # serialization lib serde = { version = "1.0", default-features = false, features = [
hashbrown = { version = "0.14", features = ["serde"] } # A faster hashmap, nostd compatible "alloc",
] } # serialization lib
hashbrown = { version = "0.14", features = [
"serde",
] } # A faster hashmap, nostd compatible
num-traits = "0.2" num-traits = "0.2"
num-derive = "0.4" num-derive = "0.4"
num_enum = "0.7" num_enum = "0.7"

View File

@ -26,7 +26,8 @@ slirp = [] # build qemu with host libslirp (for user networking)
clippy = [] # special feature for clippy, don't use in normal projects§ clippy = [] # special feature for clippy, don't use in normal projects§
paranoid_debug = [] # Will perform as many checks as possible. The target will be greatly slowed down. paranoid_debug = [
] # Will perform as many checks as possible. The target will be greatly slowed down.
[dependencies] [dependencies]
bindgen = "0.69.4" bindgen = "0.69.4"

View File

@ -9,7 +9,13 @@ readme = "../../README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "qemu", "instrumentation"] keywords = ["fuzzing", "qemu", "instrumentation"]
edition = "2021" edition = "2021"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
links = "qemu" links = "qemu"
[package.metadata.docs.rs] [package.metadata.docs.rs]
@ -33,12 +39,19 @@ systemmode = []
python = ["pyo3", "pyo3-build-config"] python = ["pyo3", "pyo3-build-config"]
slirp = [ "systemmode", "libafl_qemu_build/slirp" ] # build qemu with host libslirp (for user networking) slirp = [
"systemmode",
"libafl_qemu_build/slirp",
] # build qemu with host libslirp (for user networking)
shared = ["libafl_qemu_build/shared"] shared = ["libafl_qemu_build/shared"]
clippy = [ "libafl_qemu_build/clippy" ] # special feature for clippy, don't use in normal projects clippy = [
"libafl_qemu_build/clippy",
] # special feature for clippy, don't use in normal projects
paranoid_debug = ["libafl_qemu_build/paranoid_debug"] # Will perform as many checks as possible. The target will be greatly slowed down. paranoid_debug = [
"libafl_qemu_build/paranoid_debug",
] # Will perform as many checks as possible. The target will be greatly slowed down.
[dependencies] [dependencies]
paste = "1" paste = "1"

View File

@ -10,7 +10,13 @@ license = "MIT OR Apache-2.0"
keywords = ["fuzzing"] keywords = ["fuzzing"]
edition = "2021" edition = "2021"
build = "build.rs" build = "build.rs"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
[package.metadata.docs.rs] [package.metadata.docs.rs]
all-features = true all-features = true
@ -18,7 +24,9 @@ all-features = true
[features] [features]
default = [] default = []
document-features = ["dep:document-features"] document-features = ["dep:document-features"]
clippy = [ "libafl_qemu/clippy" ] # special feature for clippy, don't use in normal projects clippy = [
"libafl_qemu/clippy",
] # special feature for clippy, don't use in normal projects
#! # Feature Flags #! # Feature Flags
#! ## General Features #! ## General Features

View File

@ -46,18 +46,22 @@ sancov_8bit = []
sancov_ngram4 = ["coverage"] sancov_ngram4 = ["coverage"]
sancov_ngram8 = ["coverage"] sancov_ngram8 = ["coverage"]
sancov_ctx = ["coverage"] sancov_ctx = ["coverage"]
sancov_cmplog = ["common"] # Defines cmp and __sanitizer_weak_hook functions. Use libfuzzer_interceptors to define interceptors (only compatible with Linux) sancov_cmplog = [
"common",
] # Defines cmp and __sanitizer_weak_hook functions. Use libfuzzer_interceptors to define interceptors (only compatible with Linux)
sancov_pcguard = ["sancov_pcguard_hitcounts"] sancov_pcguard = ["sancov_pcguard_hitcounts"]
sanitizer_interfaces = [] sanitizer_interfaces = []
clippy = [] # Ignore compiler warnings during clippy clippy = [] # Ignore compiler warnings during clippy
observers = ["meminterval", "ahash"] observers = ["meminterval", "ahash"]
common = [] # Compile common C code defining sanitizer options and cross-platform intrinsics common = [
] # Compile common C code defining sanitizer options and cross-platform intrinsics
coverage = ["common"] # Compile C code definining coverage maps coverage = ["common"] # Compile C code definining coverage maps
cmplog = ["common"] # Compile C code defining cmp log maps cmplog = ["common"] # Compile C code defining cmp log maps
forkserver = ["common"] # Compile C code for forkserver support forkserver = ["common"] # Compile C code for forkserver support
windows_asan = ["common"] # Compile C code for ASAN on Windows windows_asan = ["common"] # Compile C code for ASAN on Windows
whole_archive = [] # use +whole-archive to ensure the presence of weak symbols whole_archive = [] # use +whole-archive to ensure the presence of weak symbols
cmplog_extended_instrumentation = [] # support for aflpp cmplog map, we will remove this once aflpp and libafl cmplog shares the same LLVM passes. cmplog_extended_instrumentation = [
] # support for aflpp cmplog map, we will remove this once aflpp and libafl cmplog shares the same LLVM passes.
function-logging = ["common"] function-logging = ["common"]
track_hit_feedbacks = ["libafl/track_hit_feedbacks"] track_hit_feedbacks = ["libafl/track_hit_feedbacks"]
[build-dependencies] [build-dependencies]
@ -66,8 +70,10 @@ cc = { version = "1.0", features = ["parallel"] }
rustversion = "1.0" rustversion = "1.0"
[dependencies] [dependencies]
libafl = { path = "../libafl", version = "0.13.2", default-features = false, features = [] } libafl = { path = "../libafl", version = "0.13.2", default-features = false, features = [
libafl_bolts = { path = "../libafl_bolts", version = "0.13.2", default-features = false, features = [] } ] }
libafl_bolts = { path = "../libafl_bolts", version = "0.13.2", default-features = false, features = [
] }
libc = "0.2" libc = "0.2"
hashbrown = "0.14" hashbrown = "0.14"
once_cell = "1.19" once_cell = "1.19"
@ -75,7 +81,9 @@ log = "0.4.20"
rustversion = "1.0" rustversion = "1.0"
rangemap = "1.3" rangemap = "1.3"
serde = { version = "1.0", default-features = false, features = ["alloc"] } # serialization lib serde = { version = "1.0", default-features = false, features = [
"alloc",
] } # serialization lib
meminterval = { version = "0.4", features = ["serde"], optional = true } meminterval = { version = "0.4", features = ["serde"], optional = true }
ahash = { version = "0.8.3", default-features = false, optional = true } ahash = { version = "0.8.3", default-features = false, optional = true }
# serde-big-array = "0.3.2" # serde-big-array = "0.3.2"

View File

@ -2,9 +2,18 @@
name = "libafl_tinyinst" name = "libafl_tinyinst"
version = "0.13.2" version = "0.13.2"
edition = "2021" edition = "2021"
authors = ["elbiazo <eric.l.biazo@gmail.com>", "Dongjia Zhang <tokazerkje@outlook.com>"] authors = [
"elbiazo <eric.l.biazo@gmail.com>",
"Dongjia Zhang <tokazerkje@outlook.com>",
]
repository = "https://github.com/AFLplusplus/LibAFL/" repository = "https://github.com/AFLplusplus/LibAFL/"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "testing", "security"] keywords = ["fuzzing", "testing", "security"]
description = "TinyInst backend for libafl" description = "TinyInst backend for libafl"

View File

@ -1,5 +1,8 @@
[package] [package]
authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenukk@gmail.com>"] authors = [
"Andrea Fioraldi <andreafioraldi@gmail.com>",
"Dominik Maier <domenukk@gmail.com>",
]
name = "deexit" name = "deexit"
version = "0.13.2" version = "0.13.2"
edition = "2021" edition = "2021"
@ -9,7 +12,13 @@ repository = "https://github.com/AFLplusplus/LibAFL/"
readme = "../../README.md" readme = "../../README.md"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "libafl", "ldpreload"] keywords = ["fuzzing", "libafl", "ldpreload"]
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -5,7 +5,13 @@ edition = "2021"
description = "DeSyscall: Hooks syscalls for reduces overhead during in-process fuzzing" description = "DeSyscall: Hooks syscalls for reduces overhead during in-process fuzzing"
repository = "https://github.com/AFLplusplus/LibAFL/" repository = "https://github.com/AFLplusplus/LibAFL/"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
categories = ["development-tools::testing", "emulators", "embedded", "os", "no-std"] categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
keywords = ["fuzzing", "libafl", "ldpreload"] keywords = ["fuzzing", "libafl", "ldpreload"]
[dependencies] [dependencies]

Some files were not shown because too many files have changed in this diff Show More