Quick & dirty Rust sigscanning crate.
```rust let sig = signature!("40 53 48 83 EC 20 48 8B 01 48 8B D9 48 89 91 ? ? ? ? FF 90 ? ? ? ? 33 D2"); let sig = obfsignature!("40 53 48 83 EC 20 48 8B 01 48 8B D9 48 89 91 ? ? ? ? FF 90 ? ? ? ? 33 D2"); // "Obfuscated" signature
let result: Result<*mut u8, ModuleSigScanError> = sig.scanmodule("path or module name");
let result: Option
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]
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]