Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/spriteovo/sigmatch
- Owner: SpriteOvO
- License: apache-2.0
- Created: 2021-08-05T16:01:25.000Z (over 3 years ago)
- Default Branch: dev
- Last Pushed: 2024-08-21T10:57:06.000Z (3 months ago)
- Last Synced: 2024-10-12T20:41:50.538Z (26 days ago)
- Topics: assembler, binary, binary-analysis, compile-time, cpp, cpp-library, cpp20, cpp20-lib, cpp20-library, header-only, library, match, pattern, reverse-engineering, search, security, signature
- Language: C++
- Homepage:
- Size: 51.8 KB
- Stars: 101
- Watchers: 6
- Forks: 18
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
sigmatchModern 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.