From 76d52bcf4960e9a36590b715a756386ffe34245f Mon Sep 17 00:00:00 2001 From: Romain Malmain Date: Wed, 2 Oct 2024 14:26:46 +0200 Subject: [PATCH] Addr filter update helper functions (#2575) * add filter update helpers * fmt --- libafl_qemu/src/modules/mod.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libafl_qemu/src/modules/mod.rs b/libafl_qemu/src/modules/mod.rs index 171a04338a..838c13e247 100644 --- a/libafl_qemu/src/modules/mod.rs +++ b/libafl_qemu/src/modules/mod.rs @@ -92,11 +92,22 @@ where fn address_filter(&self) -> &Self::ModuleAddressFilter; fn address_filter_mut(&mut self) -> &mut Self::ModuleAddressFilter; + fn update_address_filter(&mut self, qemu: Qemu, filter: Self::ModuleAddressFilter) { + *self.address_filter_mut() = filter; + // Necessary because some hooks filter during TB generation. + qemu.flush_jit(); + } #[cfg(emulation_mode = "systemmode")] fn page_filter(&self) -> &Self::ModulePageFilter; #[cfg(emulation_mode = "systemmode")] fn page_filter_mut(&mut self) -> &mut Self::ModulePageFilter; + #[cfg(emulation_mode = "systemmode")] + fn update_page_filter(&mut self, qemu: Qemu, filter: Self::ModulePageFilter) { + *self.page_filter_mut() = filter; + // Necessary because some hooks filter during TB generation. + qemu.flush_jit(); + } } pub trait EmulatorModuleTuple: