Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/spriteovo/sigmatch

✨ Modern C++ 20 signature match / search library
https://github.com/spriteovo/sigmatch

assembler binary binary-analysis compile-time cpp cpp-library cpp20 cpp20-lib cpp20-library header-only library match pattern reverse-engineering search security signature

Last synced: 26 days ago
JSON representation

✨ Modern C++ 20 signature match / search library

Awesome Lists containing this project

README

        


logo


sigmatch


Modern C++ 20 Signature Match / Search Library















## ✨ Features

- 🍃 Header-only, no dependencies, no exceptions.
- ☕ Compile-time literal signature string parsing.
- ❄️ Supports full-byte wildcards (`??` or `**`) and semi-byte wildcards (`1?` or `*B`).
- 🚀 Supports blocking (chunking) and multi-threaded for fast search.
- 🎯 Supports searching in the current process, external processes and files.
- 🍄 Customizable `reader` and `target` allow you to search on more targets (e.g. network traffic packets).

## 🌠 Examples

A quick example:

```cpp
using namespace sigmatch_literals;

sigmatch::this_process_target target;
sigmatch::search_result result = target.in_module("**module_name**").search("1A ?? 3C ** 5* ?F"_sig);
for (const std::byte *address : result.matches()) {
std::cout << "matched: " << address << '\n';
}
```

See [/examples](/examples) for more.

## 🍰 Todo

- [ ] Complete CI for testing and documentation deployment.
- [ ] Host the documentation on GitHub Pages.
- [ ] Statistical tests coverage.
- [ ] Complete benchmarks.
- [ ] Test compilers other than **MSVC**.
- [ ] Implement class `executable_file_target`.
- [ ] Port to **Linux**.

## 📜 License

**sigmatch** is licensed under either of [Apache-2.0 License](/LICENSE-APACHE) or [MIT License](/LICENSE-MIT) at your option.