pub struct Scanner { /* private fields */ }Expand description
configurable pattern scanner
uses SIMD acceleration (AVX2/SSE2) when available and alignment is 1
Implementations§
Source§impl Scanner
impl Scanner
Sourcepub fn scan_module(&self, module: &Module<'_>) -> Result<Vec<ScanMatch>>
pub fn scan_module(&self, module: &Module<'_>) -> Result<Vec<ScanMatch>>
scan loaded module for pattern
Sourcepub fn scan_module_first(
&self,
module: &Module<'_>,
) -> Result<Option<ScanMatch>>
pub fn scan_module_first( &self, module: &Module<'_>, ) -> Result<Option<ScanMatch>>
scan module, returning first match
Sourcepub fn scan_region(&self, region: &MemoryRegion) -> Result<Vec<ScanMatch>>
pub fn scan_region(&self, region: &MemoryRegion) -> Result<Vec<ScanMatch>>
scan memory region for pattern
Sourcepub fn scan_executable_regions(&self) -> Result<Vec<ScanMatch>>
pub fn scan_executable_regions(&self) -> Result<Vec<ScanMatch>>
scan all executable memory regions
Sourcepub fn scan_all_regions(&self) -> Result<Vec<ScanMatch>>
pub fn scan_all_regions(&self) -> Result<Vec<ScanMatch>>
scan all committed memory regions (more thorough, slower)
Source§impl Scanner
impl Scanner
Sourcepub fn new(pattern: &str) -> Result<Self>
pub fn new(pattern: &str) -> Result<Self>
create scanner from pattern string (auto-detect format)
Sourcepub fn from_pattern(pattern: Pattern) -> Self
pub fn from_pattern(pattern: Pattern) -> Self
create scanner from pre-parsed pattern
Sourcepub fn alignment(self, align: usize) -> Self
pub fn alignment(self, align: usize) -> Self
set scan alignment (1, 2, 4, 8, 16)
patterns will only be checked at addresses aligned to this value note: SIMD acceleration is disabled when alignment > 1
Sourcepub fn max_results(self, max: usize) -> Self
pub fn max_results(self, max: usize) -> Self
limit maximum number of results
Sourcepub fn scan_slice(&self, data: &[u8]) -> Vec<usize>
pub fn scan_slice(&self, data: &[u8]) -> Vec<usize>
scan byte slice for pattern, returning offsets
Sourcepub fn scan_slice_first(&self, data: &[u8]) -> Option<usize>
pub fn scan_slice_first(&self, data: &[u8]) -> Option<usize>
scan byte slice, returning first match offset
Auto Trait Implementations§
impl Freeze for Scanner
impl RefUnwindSafe for Scanner
impl Send for Scanner
impl Sync for Scanner
impl Unpin for Scanner
impl UnwindSafe for Scanner
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