{"id":34565526,"url":"https://github.com/dasaav-dsv/pattern16","last_synced_at":"2025-12-24T09:03:40.914Z","repository":{"id":181714788,"uuid":"667183947","full_name":"Dasaav-dsv/Pattern16","owner":"Dasaav-dsv","description":"The fastest x86-64 signature matching library.","archived":false,"fork":false,"pushed_at":"2024-01-07T01:13:22.000Z","size":85,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-01-07T02:25:12.169Z","etag":null,"topics":["aob","aob-scan","aob-scanner","cplusplus","header-only","memory-scanner","pattern","pattern-scanner","reverse-engineering","signature","signature-scanner","simd"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dasaav-dsv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-16T23:09:34.000Z","updated_at":"2023-12-20T20:28:31.000Z","dependencies_parsed_at":"2023-07-17T00:50:16.229Z","dependency_job_id":null,"html_url":"https://github.com/Dasaav-dsv/Pattern16","commit_stats":null,"previous_names":["dasaav-dsv/pattern16"],"tags_count":1,"template":null,"template_full_name":null,"purl":"pkg:github/Dasaav-dsv/Pattern16","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dasaav-dsv%2FPattern16","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dasaav-dsv%2FPattern16/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dasaav-dsv%2FPattern16/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dasaav-dsv%2FPattern16/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dasaav-dsv","download_url":"https://codeload.github.com/Dasaav-dsv/Pattern16/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dasaav-dsv%2FPattern16/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27999311,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aob","aob-scan","aob-scanner","cplusplus","header-only","memory-scanner","pattern","pattern-scanner","reverse-engineering","signature","signature-scanner","simd"],"created_at":"2025-12-24T09:03:17.118Z","updated_at":"2025-12-24T09:03:40.906Z","avatar_url":"https://github.com/Dasaav-dsv.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pattern16\nThe fastest x86-64 signature matching library.\n### Features:\n - Faster than the fastest existing scanners by ~50%, with reliable singlethreaded speeds up to 25 GB/s for consecutive scans\n - Aids reverse engineering by targeting assembly bytecode\n - Designed and optimized for x86-64, with 32-bit support planned\n - Support for all new (and old) CPU features\n - Uses AVX1, SSE4.1, SSE2, CMOVE in order of availability, BMI2 and BMI1 (with fill-in functions)\n - Header only, written in modern C++\n### Usage:\nInclude `Pattern16.h` and provide the address of a memory region's start, its length and the signature to search for formatted as a string:\n```cpp\n#include \"Pattern16.h\"\n\nvoid* regionStart = (void*)0x140000000;\nsize_t regionSize = 0x4000000;\nstd::string signature = \"00 11 ?? ?? ?? ?? 66 77 [?1?0??01] 99 AA BB C? ?D EE FF\";\nvoid* address = Pattern16::find(regionStart, regionSize, signature);\n```\nPattern16 signature rules:\n - All byte values are represented in base16/hexadecimal notation\n - Space characters ` ` are ignored completely even inside bit masks, so use them for formatting\n - Symbols other than `0123456789ABCDEFabcdef[]` are wildcards and can stand in for any byte or bit\n - A sequence of symbols within sqare brackets `[]` represents a bit field. Don't forget there are 8 bits in a byte!\n - Bits inside a bitfield can be masked with wildcard symbols\n - A bitfield does not have to be limited to a single byte, `[01xx1100 xxx11xx0]` is a legal 2-byte masked bitfield\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdasaav-dsv%2Fpattern16","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdasaav-dsv%2Fpattern16","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdasaav-dsv%2Fpattern16/lists"}