Binary Signature Scanner

Scanner for binary signatures.

Intended use case is scanning for signatures in executables.

Documentation

For now documentation can be found on crates.fyi.

Usage

This library can be found on crates.io. In your Cargo.toml put

[dependencies] scanner = "0.1"

Examples

Signatures are a sequence of pat::Units, they can be created statically or parsed at runtime:

```rust extern create scanner; use scanner::pat::{parse, Unit};

const MY_PATTERN: &'static [Unit] = &[Unit::Byte(0xE9), Unit::Store, Unit::Skip(4), Unit::Byte(0xC3)];

let pat = parse("E9*???? C3").unwrap(); asserteq!(pat, MYPATTERN); ```

The signature scanner supports two major use cases:

Typically you want to use this crate to scan for signatures in the code section (eg .text), for this there's an optional dependency on the pelite crate and a From conversion from &PeView to construct a Scanner.

Design

Signatures can be a messy business, this crate attempts to assist with some of the common pitfalls while providing some nice features.

License

MIT - see license.txt