From 2a95164d9134db9c59cbd5f5761a1cbcc3d2fb98 Mon Sep 17 00:00:00 2001 From: d0ntrash Date: Fri, 20 Dec 2024 12:31:17 +0100 Subject: [PATCH] Add dump_pt_trace config parameter --- config/src/config.rs | 4 +++- config/src/loader.rs | 6 ++++++ fuzz_runner/src/nyx/params.rs | 5 ++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/config/src/config.rs b/config/src/config.rs index ac2cef6..078ca3c 100644 --- a/config/src/config.rs +++ b/config/src/config.rs @@ -141,7 +141,8 @@ pub struct FuzzerConfig { pub write_protected_input_buffer: bool, pub cow_primary_size: Option, pub ipt_filters: [IptFilter;4], - pub target_hash: Option<[u8; 20]> + pub target_hash: Option<[u8; 20]>, + pub dump_pt_trace: bool, } impl FuzzerConfig{ @@ -200,6 +201,7 @@ impl FuzzerConfig{ config.ip3, ], target_hash: target_hash, + dump_pt_trace: config.dump_pt_trace, } } } diff --git a/config/src/loader.rs b/config/src/loader.rs index 51f7c3a..ba5ca9d 100644 --- a/config/src/loader.rs +++ b/config/src/loader.rs @@ -64,6 +64,12 @@ pub struct FuzzerConfigLoader { pub snapshot_placement: Option, pub dump_python_code_for_inputs: Option, pub exit_after_first_crash: Option, + #[serde(default = "default_dump_pt_trace")] + pub dump_pt_trace: bool, +} + +fn default_dump_pt_trace() -> bool { + false } fn default_input_buffer_size() -> usize { diff --git a/fuzz_runner/src/nyx/params.rs b/fuzz_runner/src/nyx/params.rs index f837513..a37a647 100644 --- a/fuzz_runner/src/nyx/params.rs +++ b/fuzz_runner/src/nyx/params.rs @@ -12,6 +12,7 @@ pub struct QemuParams { pub dump_python_code_for_inputs: bool, pub write_protected_input_buffer: bool, + pub dump_pt_trace: bool, pub cow_primary_size: Option, pub hprintf_fd: Option, @@ -100,6 +101,7 @@ impl QemuParams { nyx_ops += &format!(",workdir={}", workdir); nyx_ops += &format!(",sharedir={}", sharedir); nyx_ops += &format!(",aux_buffer_size={}", fuzzer_config.runtime.aux_buffer_size()); + nyx_ops += &format!(",dump_pt_trace={}", fuzzer_config.fuzz.dump_pt_trace); let mut i = 0; for filter in fuzzer_config.fuzz.ipt_filters{ @@ -196,7 +198,8 @@ impl QemuParams { cow_primary_size: fuzzer_config.fuzz.cow_primary_size, hprintf_fd: fuzzer_config.runtime.hprintf_fd(), aux_buffer_size: fuzzer_config.runtime.aux_buffer_size(), - time_limit: fuzzer_config.fuzz.time_limit + time_limit: fuzzer_config.fuzz.time_limit, + dump_pt_trace: fuzzer_config.fuzz.dump_pt_trace, } }