All Projects → codecat → BinFind

codecat / BinFind

Licence: MIT license
Perform regex pattern matching on binary data. (Regex-like)

Programming Languages

C++
36643 projects - #6 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to BinFind

globrex
Glob to regular expression with support for extended globs.
Stars: ✭ 52 (+67.74%)
Mutual labels:  pattern, regex
Commonregex
🍫 A collection of common regular expressions for Go
Stars: ✭ 733 (+2264.52%)
Mutual labels:  pattern, regex
smtplib-bruteforce
bruteforcing gmail (TLS/SSL)
Stars: ✭ 26 (-16.13%)
Mutual labels:  pattern, regex
Globbing
Introduction to "globbing" or glob matching, a programming concept that allows "filepath expansion" and matching using wildcards.
Stars: ✭ 86 (+177.42%)
Mutual labels:  pattern, regex
extglob
Extended globs. Add (almost) the expressive power of regular expressions to glob patterns.
Stars: ✭ 25 (-19.35%)
Mutual labels:  pattern, regex
Hexyl
A command-line hex viewer
Stars: ✭ 6,349 (+20380.65%)
Mutual labels:  binary-data, hexadecimal
BinaryStream
BinaryStream - a writer and reader for binary data. Best replacement for pack()/unpack().
Stars: ✭ 44 (+41.94%)
Mutual labels:  binary-data
ethereum-regex
Ξ Regular expression for matching Ethereum (ETH) addresses.
Stars: ✭ 19 (-38.71%)
Mutual labels:  regex
metal
A Java library for parsing binary data formats, using declarative descriptions.
Stars: ✭ 13 (-58.06%)
Mutual labels:  binary-data
Easy Tips
A little Tips in my Code Career with Go&PHP 🥳🥳🥳
Stars: ✭ 2,555 (+8141.94%)
Mutual labels:  pattern
spaczz
Fuzzy matching and more functionality for spaCy.
Stars: ✭ 215 (+593.55%)
Mutual labels:  regex
it-tools
A programing helper for developers built with Electron & Vue.js 🚀
Stars: ✭ 114 (+267.74%)
Mutual labels:  regex
racket-bitsyntax
Erlang-style binaries/bitstrings for Racket
Stars: ✭ 29 (-6.45%)
Mutual labels:  binary-data
fastDummies
The goal of fastDummies is to quickly create dummy variables (columns) and dummy rows.
Stars: ✭ 33 (+6.45%)
Mutual labels:  binary-data
matched
Glob matching with support for multiple patterns and negation. Use `~` in cwd to find files in user home, or `@` for global npm modules.
Stars: ✭ 25 (-19.35%)
Mutual labels:  pattern
pfp-vim
A vim hex-editor plugin that uses 010 templates to parse binary data using pfp
Stars: ✭ 57 (+83.87%)
Mutual labels:  binary-data
FlexBuffersSwift
Swift implementation of FlexBuffers - a sub project of FlatBuffers
Stars: ✭ 24 (-22.58%)
Mutual labels:  binary-data
Getx pattern
Design pattern designed to standardize your projects with GetX on Flutter.
Stars: ✭ 225 (+625.81%)
Mutual labels:  pattern
octet
A library that makes working with bytebuffers painless.
Stars: ✭ 79 (+154.84%)
Mutual labels:  binary-data
parse-github-url
Parse a Github URL into an object. Supports a wide variety of GitHub URL formats.
Stars: ✭ 114 (+267.74%)
Mutual labels:  regex

BinFind

A C++ class for performing regex-like searches on binary data.

Usage

Here's a basic example on how to use BinFind:

// Initialize a search in the given buffer
BinFind find(buffer, sizeof(buffer));

// Match 1 or more 0x05, 0 or 1 0xFF, and 1 or more 0x04.
auto ret = find.Find("05+ FF? 04+");

// Print out the results
for (auto result : ret) {
	printf("* %p -> %p\n", result.Pointer, result.Pointer + result.Size);
}

There's a simple example you can compile and run in main.cpp as well.

You can also call BinFind_DumpMemory to dump a memory region with an optional vector of sections to highlight, which will result in the screenshot above.

License

Copyright (c) 2017 github.com/codecat

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].