pub struct MaskedPattern<'a> { /* private fields */ }Expand description
A byte pattern with a wildcard mask
In the mask, 1 means the byte must match, and 0 means it’s a wildcard.
§Example
use azathoth_utils::psearch::{MaskedPattern, Searcher};
fn main() {
let memory_region = b"deadbeef_and_more_deadbeef_and_the_final_deadbeef";
let mpattern = MaskedPattern::new(b"deadbeef", &[1, 0, 0, 1, 0, 0, 0, 1]).unwrap();
let mut msearcher = Searcher::new(mpattern).unwrap();
let offsets: Vec<_> = msearcher.search_all(memory_region).collect();
println!("Found offsets: {:?}", offsets);
}Implementations§
Source§impl<'a> MaskedPattern<'a>
impl<'a> MaskedPattern<'a>
Sourcepub fn new(pattern: &'a [u8], mask: &'a [u8]) -> AzUtilResult<Self>
pub fn new(pattern: &'a [u8], mask: &'a [u8]) -> AzUtilResult<Self>
Creates a new masked pattern object
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for MaskedPattern<'a>
impl<'a> RefUnwindSafe for MaskedPattern<'a>
impl<'a> Send for MaskedPattern<'a>
impl<'a> Sync for MaskedPattern<'a>
impl<'a> Unpin for MaskedPattern<'a>
impl<'a> UnsafeUnpin for MaskedPattern<'a>
impl<'a> UnwindSafe for MaskedPattern<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more