From 376e3adfcddd81a86683fefc26eaa52e1581f494 Mon Sep 17 00:00:00 2001 From: Dongjia Zhang Date: Mon, 1 Aug 2022 16:53:39 +0200 Subject: [PATCH] Bump Frida, Capstone versions (#715) * bump * fix * fix * revert * fix * fmt * fix --- fuzzers/frida_libpng/Cargo.toml | 4 ++-- libafl/src/bolts/cli.rs | 4 ++-- libafl/src/bolts/shmem.rs | 6 +++--- libafl/src/executors/inprocess.rs | 8 ++++---- libafl/src/executors/mod.rs | 8 ++++---- libafl/src/observers/concolic/serialization_format.rs | 2 +- libafl_frida/Cargo.toml | 4 ++-- libafl_frida/src/asan/asan_rt.rs | 2 +- libafl_frida/src/helper.rs | 2 +- libafl_qemu/Cargo.toml | 2 +- 10 files changed, 21 insertions(+), 21 deletions(-) diff --git a/fuzzers/frida_libpng/Cargo.toml b/fuzzers/frida_libpng/Cargo.toml index 2039b501a8..6e07c286b0 100644 --- a/fuzzers/frida_libpng/Cargo.toml +++ b/fuzzers/frida_libpng/Cargo.toml @@ -28,8 +28,8 @@ reqwest = { version = "0.11.4", features = ["blocking"] } [dependencies] libafl = { path = "../../libafl/", features = [ "std", "llmp_compression", "llmp_bind_public", "frida_cli" ] } #, "llmp_small_maps", "llmp_debug"]} -capstone = "0.10" -frida-gum = { version = "0.6.5", features = [ "auto-download", "event-sink", "invocation-listener"] } +capstone = "0.11.0" +frida-gum = { version = "0.7.1", features = [ "auto-download", "event-sink", "invocation-listener"] } libafl_frida = { path = "../../libafl_frida", features = ["cmplog"] } libafl_targets = { path = "../../libafl_targets", features = ["sancov_cmplog"] } lazy_static = "1.4.0" diff --git a/libafl/src/bolts/cli.rs b/libafl/src/bolts/cli.rs index 138d6272fa..c2463eb2be 100644 --- a/libafl/src/bolts/cli.rs +++ b/libafl/src/bolts/cli.rs @@ -401,14 +401,14 @@ mod tests { #[test] #[cfg(feature = "frida_cli")] fn parse_instrumentation_location_fails_without_at_symbol() { - assert!(parse_instrumentation_location("mod_name0x12345").is_err()); + parse_instrumentation_location("mod_name0x12345").unwrap_err(); } /// pass module without address to `parse_instrumentation_location`, expect failure #[test] #[cfg(feature = "frida_cli")] fn parse_instrumentation_location_failes_without_address() { - assert!(parse_instrumentation_location("mod_name@").is_err()); + parse_instrumentation_location("mod_name@").unwrap_err(); } /// pass location without 0x to `parse_instrumentation_location`, expect value to be parsed diff --git a/libafl/src/bolts/shmem.rs b/libafl/src/bolts/shmem.rs index 738b1721e9..88f89856ad 100644 --- a/libafl/src/bolts/shmem.rs +++ b/libafl/src/bolts/shmem.rs @@ -1397,7 +1397,7 @@ impl std::io::Seek for ShMemCursor { std::io::SeekFrom::Start(s) => s, std::io::SeekFrom::End(offset) => { let map_len = self.inner.as_slice().len(); - assert!(i64::try_from(map_len).is_ok()); + i64::try_from(map_len).unwrap(); let signed_pos = map_len as i64; let effective = signed_pos.checked_add(offset).unwrap(); assert!(effective >= 0); @@ -1405,14 +1405,14 @@ impl std::io::Seek for ShMemCursor { } std::io::SeekFrom::Current(offset) => { let current_pos = self.pos; - assert!(i64::try_from(current_pos).is_ok()); + i64::try_from(current_pos).unwrap(); let signed_pos = current_pos as i64; let effective = signed_pos.checked_add(offset).unwrap(); assert!(effective >= 0); effective.try_into().unwrap() } }; - assert!(usize::try_from(effective_new_pos).is_ok()); + usize::try_from(effective_new_pos).unwrap(); self.pos = effective_new_pos as usize; Ok(effective_new_pos) } diff --git a/libafl/src/executors/inprocess.rs b/libafl/src/executors/inprocess.rs index ff3d3bec87..49c2d60a7f 100644 --- a/libafl/src/executors/inprocess.rs +++ b/libafl/src/executors/inprocess.rs @@ -1657,9 +1657,9 @@ mod tests { phantom: PhantomData, }; let input = NopInput {}; - assert!(in_process_executor + in_process_executor .run_target(&mut (), &mut (), &mut (), &input) - .is_ok()); + .unwrap(); } #[test] @@ -1679,9 +1679,9 @@ mod tests { phantom: PhantomData, }; let input = NopInput {}; - assert!(in_process_fork_executor + in_process_fork_executor .run_target(&mut (), &mut (), &mut (), &input) - .is_ok()); + .unwrap(); } } diff --git a/libafl/src/executors/mod.rs b/libafl/src/executors/mod.rs index b04d80e78a..46b53d6766 100644 --- a/libafl/src/executors/mod.rs +++ b/libafl/src/executors/mod.rs @@ -176,12 +176,12 @@ mod test { let empty_input = BytesInput::new(vec![]); let nonempty_input = BytesInput::new(vec![1u8]); let mut executor = NopExecutor {}; - assert!(executor + executor .run_target(&mut (), &mut (), &mut (), &empty_input) - .is_err()); - assert!(executor + .unwrap_err(); + executor .run_target(&mut (), &mut (), &mut (), &nonempty_input) - .is_ok()); + .unwrap(); } } diff --git a/libafl/src/observers/concolic/serialization_format.rs b/libafl/src/observers/concolic/serialization_format.rs index cab2ddc0db..fc71a8773a 100644 --- a/libafl/src/observers/concolic/serialization_format.rs +++ b/libafl/src/observers/concolic/serialization_format.rs @@ -468,7 +468,7 @@ impl<'buffer> MessageFileReader> { let mut len_buf = 0_u64.to_le_bytes(); buffer.read_exact(&mut len_buf)?; let buffer_len = u64::from_le_bytes(len_buf); - assert!(usize::try_from(buffer_len).is_ok()); + usize::try_from(buffer_len).unwrap(); let buffer_len = buffer_len as usize; let (buffer, _) = buffer.split_at(buffer_len); Ok(Self::from_buffer(buffer)) diff --git a/libafl_frida/Cargo.toml b/libafl_frida/Cargo.toml index 23fe8a5a0e..25b67eadca 100644 --- a/libafl_frida/Cargo.toml +++ b/libafl_frida/Cargo.toml @@ -28,10 +28,10 @@ hashbrown = "0.12" libloading = "0.7" rangemap = "1.0" frida-gum-sys = { version = "0.3", features = [ "auto-download", "event-sink", "invocation-listener"] } -frida-gum = { version = "0.6.5", features = [ "auto-download", "event-sink", "invocation-listener"] } +frida-gum = { version = "0.7.1", features = [ "auto-download", "event-sink", "invocation-listener"] } regex = "1" dynasmrt = "1.2" -capstone = "0.10" +capstone = "0.11.0" color-backtrace ={ version = "0.5", features = [ "resolve-modules" ] } termcolor = "1.1.3" serde = "1.0" diff --git a/libafl_frida/src/asan/asan_rt.rs b/libafl_frida/src/asan/asan_rt.rs index 9227a58946..24db4814b8 100644 --- a/libafl_frida/src/asan/asan_rt.rs +++ b/libafl_frida/src/asan/asan_rt.rs @@ -169,7 +169,7 @@ impl FridaRuntime for AsanRuntime { self.generate_shadow_check_function(); self.unpoison_all_existing_memory(); - self.module_map = Some(ModuleMap::new_from_names(modules_to_instrument)); + self.module_map = Some(ModuleMap::new_from_names(gum, modules_to_instrument)); if !self.options.dont_instrument.is_empty() { for (module_name, offset) in self.options.dont_instrument.clone() { let module_details = ModuleDetails::with_name(module_name).unwrap(); diff --git a/libafl_frida/src/helper.rs b/libafl_frida/src/helper.rs index 32c52183bc..c53d5fe904 100644 --- a/libafl_frida/src/helper.rs +++ b/libafl_frida/src/helper.rs @@ -221,7 +221,7 @@ where .build() .expect("Failed to create Capstone object"), ranges: RangeMap::new(), - module_map: ModuleMap::new_from_names(&modules_to_instrument), + module_map: ModuleMap::new_from_names(gum, &modules_to_instrument), options, runtimes, }; diff --git a/libafl_qemu/Cargo.toml b/libafl_qemu/Cargo.toml index 6549aada6b..b234768c8f 100644 --- a/libafl_qemu/Cargo.toml +++ b/libafl_qemu/Cargo.toml @@ -40,7 +40,7 @@ strum_macros = "0.24" syscall-numbers = "3.0" bio = "0.41" thread_local = "1.1.4" -capstone = "0.10" +capstone = "0.11.0" #pyo3 = { version = "0.15", features = ["extension-module"], optional = true } pyo3 = { version = "0.15", optional = true }