skidscan
Quick & dirty Rust sigscanning crate.
Features
- Cross-platform
- Scan for patterns from a pointer
- Scan for patterns in a byte slice
- Scan for patterns in a loaded shared library (.so/.dll)
- "Obfuscated signatures" using obfstr
Usage
let sig = signature!;
let sig = obfsignature!; // "Obfuscated" signature
let result: = sig.scan_module;
let result: = sig.scan_ptr;
let result: = sig.scan;
Signatures
Signatures are constructed as a series of Option<u8>.
None represents a ?: any byte, so long as it is present.
Some(u8) represents this byte exactly.
For example, signature!("48 89 91 ? ? ?") becomes [Some(0x48), Some(0x89), Some(0x91), None, None, None]
Obfuscated Signatures
You can construct an "obfuscated" signature using obfstr with the obfuscate crate feature.
Obfuscated signatures are constructed, for each byte: Some(obfstr!("0xFF").parse::<u8>())
For example, signature!("48 89 91 ? ? ?") becomes [Some(obfstr!("0x48").parse::<u8>()), Some(obfstr!("0x89").parse::<u8>()), Some(obfstr!("0x91").parse::<u8>()), None, None, None]