goblin-sigscan-pattern 0.1.0

Shared pattern parser for goblin-sigscan
Documentation
  • Coverage
  • 75%
    33 out of 44 items documented1 out of 7 items with examples
  • Size
  • Source code size: 52.45 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 4.36 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 52s Average build duration of successful builds.
  • all releases: 52s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • memflow/goblin-sigscan
    1 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • ko1N

goblin-sigscan

goblin-sigscan provides pelite-style pattern parsing and scanner behavior over goblin-backed PE/ELF/Mach binaries.

Workspace crates

  • crates/goblin-sigscan-pattern: pattern parser and atom model
  • crates/goblin-sigscan: scanner/runtime API and format wrappers
  • crates/goblin-sigscan-macros: pattern! compile-time parsing macro
  • crates/goblin-sigscan-cli: small CLI for pelite-style signature scanning

Quick start

use goblin_sigscan::pattern;

let atoms = pattern::parse("48 8B ? ? ? ? 48 89")?;
let save_slots = pattern::save_len(&atoms);
assert!(save_slots >= 1);
# Ok::<(), goblin_sigscan::pattern::ParsePatError>(())

Before scanning, ensure the save buffer has enough capacity for at least pattern::save_len(&atoms) elements (or PreparedPattern::required_slots()). Slot 0 always holds the match base address.

For syntax onboarding, see the public docs on goblin_sigscan::pattern and goblin_sigscan_pattern::parse.

Docs.rs navigation shortcuts:

Benchmarks

See scripts/README.md for benchmark workflows, A/B comparisons, and guidance for reducing run-to-run noise.

Credits

This project borrows heavily from the original pelite pattern model and syntax. Huge thanks to CasualX and his pelite project:

License

Licensed under the MIT License. See LICENSE for details.