From 29f89b4b299898d428c99e85aa40930e0c11fd29 Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Sun, 23 Jan 2022 16:15:14 +0100 Subject: [PATCH] disable syscall hooks in systemmode --- libafl_qemu/src/asan.rs | 1 + libafl_qemu/src/emu.rs | 4 ++++ libafl_qemu/src/executor.rs | 2 ++ 3 files changed, 7 insertions(+) diff --git a/libafl_qemu/src/asan.rs b/libafl_qemu/src/asan.rs index 8e91798d5c..ee8e089e48 100644 --- a/libafl_qemu/src/asan.rs +++ b/libafl_qemu/src/asan.rs @@ -432,6 +432,7 @@ where executor.hook_write1_execution(trace_write1_asan::); executor.hook_write_n_execution(trace_write_n_asan::); + #[cfg(not(feature = "systemmode"))] executor.hook_syscalls(qasan_fake_syscall::); } diff --git a/libafl_qemu/src/emu.rs b/libafl_qemu/src/emu.rs index 85cafc43fb..04e7248056 100644 --- a/libafl_qemu/src/emu.rs +++ b/libafl_qemu/src/emu.rs @@ -242,8 +242,10 @@ extern "C" { static mut libafl_exec_cmp_hook8: unsafe extern "C" fn(u64, u64, u64); static mut libafl_gen_cmp_hook: unsafe extern "C" fn(u64, u32) -> u64; + #[cfg(not(feature = "systemmode"))] static mut libafl_pre_syscall_hook: unsafe extern "C" fn(i32, u64, u64, u64, u64, u64, u64, u64, u64) -> SyscallHookResult; + #[cfg(not(feature = "systemmode"))] static mut libafl_post_syscall_hook: unsafe extern "C" fn(u64, i32, u64, u64, u64, u64, u64, u64, u64, u64) -> u64; } @@ -638,6 +640,7 @@ impl Emulator { } } + #[cfg(not(feature = "systemmode"))] pub fn set_pre_syscall_hook( &self, hook: extern "C" fn(i32, u64, u64, u64, u64, u64, u64, u64, u64) -> SyscallHookResult, @@ -647,6 +650,7 @@ impl Emulator { } } + #[cfg(not(feature = "systemmode"))] pub fn set_post_syscall_hook( &self, hook: extern "C" fn(u64, i32, u64, u64, u64, u64, u64, u64, u64, u64) -> u64, diff --git a/libafl_qemu/src/executor.rs b/libafl_qemu/src/executor.rs index 8805ce15ba..2c782bdb2f 100644 --- a/libafl_qemu/src/executor.rs +++ b/libafl_qemu/src/executor.rs @@ -733,6 +733,7 @@ where #[allow(clippy::unused_self)] #[allow(clippy::type_complexity)] + #[cfg(not(feature = "systemmode"))] pub fn hook_syscalls( &self, hook: fn( @@ -759,6 +760,7 @@ where #[allow(clippy::unused_self)] #[allow(clippy::type_complexity)] + #[cfg(not(feature = "systemmode"))] pub fn hook_after_syscalls( &self, hook: fn(