Struct lightningscanner::Scanner
source · pub struct Scanner(/* private fields */);Expand description
Single result IDA-style pattern scanner
A pattern scanner that searches for an IDA-style pattern and returns the pointer to the first occurrence in the binary.
Implementations§
source§impl Scanner
impl Scanner
sourcepub fn find(
&self,
preferred_scan_mode: Option<ScanMode>,
binary: &[u8]
) -> ScanResult
pub fn find( &self, preferred_scan_mode: Option<ScanMode>, binary: &[u8] ) -> ScanResult
Find the first occurence of the pattern in the binary
Params
-
preferred_scan_mode- preferred scan mode to use (Avx2, Sse42, Scalar) if the preferred mode is not available, will choose the fastest out of the availble ones -
binary- binary to search for the pattern in
Example
use lightningscanner::Scanner;
let binary = [0xab, 0xec, 0x48, 0x89, 0x5c, 0x24, 0xee, 0x48, 0x89, 0x6c];
let scanner = Scanner::new("48 89 5c 24 ?? 48 89 6c");
let result = scanner.find(None, &binary);
println!("{:?}", result);sourcepub unsafe fn find_ptr(
&self,
preferred_scan_mode: Option<ScanMode>,
binary_ptr: *const u8,
binary_size: usize
) -> ScanResult
pub unsafe fn find_ptr( &self, preferred_scan_mode: Option<ScanMode>, binary_ptr: *const u8, binary_size: usize ) -> ScanResult
Find the first occurence of the pattern in the binary
Params
-
preferred_scan_mode- preferred scan mode to use (Avx2, Sse42, Scalar) if the preferred mode is not available, will choose the fastest out of the availble ones -
binary_ptr- pointer to the first element of the binary to search the pattern in -
binary_size- binary size
Safety
-
binary_ptr- is a valid pointer -
binary_size- corresponds to a valid size ofbinary
Example
use lightningscanner::Scanner;
let binary = [0xab, 0xec, 0x48, 0x89, 0x5c, 0x24, 0xee, 0x48, 0x89, 0x6c];
let scanner = Scanner::new("48 89 5c 24 ?? 48 89 6c");
let result = unsafe { scanner.find_ptr(None, binary.as_ptr(), binary.len()) };
println!("{:?}", result);