diff options
| author | Rubens Brandao <git@rubens.io> | 2024-06-20 15:34:39 -0300 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-02-07 17:58:26 -0500 |
| commit | 01ef88f28a999ab16508483bd5a442f26876a81e (patch) | |
| tree | f51d15afda44041a0f1c3e5a8222d63138a6f9cd /rust/src/binary_view.rs | |
| parent | 0577345afbc75d72fd9f5e9c11e489b5f59202ae (diff) | |
Implement Rust BaseAddressDetection
Diffstat (limited to 'rust/src/binary_view.rs')
| -rw-r--r-- | rust/src/binary_view.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/rust/src/binary_view.rs b/rust/src/binary_view.rs index af4709e7..396c04ce 100644 --- a/rust/src/binary_view.rs +++ b/rust/src/binary_view.rs @@ -24,6 +24,7 @@ use binaryninjacore_sys::*; use crate::architecture::{Architecture, CoreArchitecture}; +use crate::base_detection::BaseAddressDetection; use crate::basic_block::BasicBlock; use crate::component::{Component, IntoComponentGuid}; use crate::confidence::Conf; @@ -369,6 +370,13 @@ pub trait BinaryViewExt: BinaryViewBase { } } + fn base_address_detection(&self) -> Option<BaseAddressDetection> { + unsafe { + let handle = BNCreateBaseAddressDetection(self.as_ref().handle); + NonNull::new(handle).map(|base| BaseAddressDetection::from_raw(base)) + } + } + fn instruction_len<A: Architecture>(&self, arch: &A, addr: u64) -> Option<usize> { unsafe { let size = BNGetInstructionLength(self.as_ref().handle, arch.as_ref().handle, addr); |
