From 3d8ea14b00be78ef1287f065459e75288dd4931d Mon Sep 17 00:00:00 2001 From: Louis Merlin Date: Tue, 16 Jan 2024 17:46:14 +0100 Subject: [PATCH 1/4] Add --afl-flags flag to pass flags directly to AFL++ --- src/bin/cargo-ziggy/fuzz.rs | 1 + src/bin/cargo-ziggy/main.rs | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/bin/cargo-ziggy/fuzz.rs b/src/bin/cargo-ziggy/fuzz.rs index 4f17e83..45264bf 100644 --- a/src/bin/cargo-ziggy/fuzz.rs +++ b/src/bin/cargo-ziggy/fuzz.rs @@ -365,6 +365,7 @@ impl Fuzz { mutation_option, &timeout_option_afl, &dictionary_option, + &self.afl_flags, &format!("./target/afl/debug/{}", self.target), ] .iter() diff --git a/src/bin/cargo-ziggy/main.rs b/src/bin/cargo-ziggy/main.rs index 42a5e06..6cd19ce 100644 --- a/src/bin/cargo-ziggy/main.rs +++ b/src/bin/cargo-ziggy/main.rs @@ -148,6 +148,10 @@ pub struct Fuzz { // This value helps us create a global timer for our display #[clap(skip=std::time::Instant::now())] start_time: std::time::Instant, + + /// Pass + #[clap(short = 'f', value_name = "FLAGS", default_value = "")] + afl_flags: String, } #[derive(Args)] From 96a0fbe005843a9d011f1adf34722fdc1aef64ad Mon Sep 17 00:00:00 2001 From: Louis Merlin Date: Tue, 16 Jan 2024 18:37:49 +0100 Subject: [PATCH 2/4] Change flag definition --- src/bin/cargo-ziggy/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/cargo-ziggy/main.rs b/src/bin/cargo-ziggy/main.rs index 6cd19ce..29df3ab 100644 --- a/src/bin/cargo-ziggy/main.rs +++ b/src/bin/cargo-ziggy/main.rs @@ -149,8 +149,8 @@ pub struct Fuzz { #[clap(skip=std::time::Instant::now())] start_time: std::time::Instant, - /// Pass - #[clap(short = 'f', value_name = "FLAGS", default_value = "")] + /// Pass flags to AFL++ directly + #[clap(short = 'a', long = "afl-flags", value_name = "FLAGS")] afl_flags: String, } From 1e0bf84f952c4410f82e80a9946ff4112720d745 Mon Sep 17 00:00:00 2001 From: Louis Merlin Date: Wed, 17 Jan 2024 09:44:14 +0100 Subject: [PATCH 3/4] Restore default value for flag --- src/bin/cargo-ziggy/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/cargo-ziggy/main.rs b/src/bin/cargo-ziggy/main.rs index 29df3ab..a2f5e51 100644 --- a/src/bin/cargo-ziggy/main.rs +++ b/src/bin/cargo-ziggy/main.rs @@ -150,7 +150,7 @@ pub struct Fuzz { start_time: std::time::Instant, /// Pass flags to AFL++ directly - #[clap(short = 'a', long = "afl-flags", value_name = "FLAGS")] + #[clap(short = 'a', long = "afl-flags", value_name = "FLAGS", default_value="")] afl_flags: String, } From 33d6ad12e288603dd5b2f4613c2261959ac8fd30 Mon Sep 17 00:00:00 2001 From: Louis Merlin Date: Wed, 17 Jan 2024 09:53:14 +0100 Subject: [PATCH 4/4] Clean up afl-flags flag --- src/bin/cargo-ziggy/fuzz.rs | 2 +- src/bin/cargo-ziggy/main.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/cargo-ziggy/fuzz.rs b/src/bin/cargo-ziggy/fuzz.rs index 45264bf..92afa90 100644 --- a/src/bin/cargo-ziggy/fuzz.rs +++ b/src/bin/cargo-ziggy/fuzz.rs @@ -365,7 +365,7 @@ impl Fuzz { mutation_option, &timeout_option_afl, &dictionary_option, - &self.afl_flags, + &self.afl_flags.clone().unwrap_or_default(), &format!("./target/afl/debug/{}", self.target), ] .iter() diff --git a/src/bin/cargo-ziggy/main.rs b/src/bin/cargo-ziggy/main.rs index a2f5e51..c2e761e 100644 --- a/src/bin/cargo-ziggy/main.rs +++ b/src/bin/cargo-ziggy/main.rs @@ -150,8 +150,8 @@ pub struct Fuzz { start_time: std::time::Instant, /// Pass flags to AFL++ directly - #[clap(short = 'a', long = "afl-flags", value_name = "FLAGS", default_value="")] - afl_flags: String, + #[clap(short, long)] + afl_flags: Option, } #[derive(Args)]