{"id":24960962,"url":"https://github.com/rainafterdark/protomatcher","last_synced_at":"2025-10-27T20:07:51.102Z","repository":{"id":181229146,"uuid":"666426709","full_name":"RainAfterDark/ProtoMatcher","owner":"RainAfterDark","description":"Simple tool for fuzzy matching obfuscated protobuf definitions with existing reference ones.","archived":false,"fork":false,"pushed_at":"2023-07-14T14:19:24.000Z","size":931,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T15:26:05.328Z","etag":null,"topics":["deobfuscation","fuzzy-matching","protobuf","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RainAfterDark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-14T13:42:08.000Z","updated_at":"2025-02-10T22:08:43.000Z","dependencies_parsed_at":"2023-07-14T16:07:40.665Z","dependency_job_id":null,"html_url":"https://github.com/RainAfterDark/ProtoMatcher","commit_stats":null,"previous_names":["rainafterdark/protomatcher"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RainAfterDark/ProtoMatcher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RainAfterDark%2FProtoMatcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RainAfterDark%2FProtoMatcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RainAfterDark%2FProtoMatcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RainAfterDark%2FProtoMatcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RainAfterDark","download_url":"https://codeload.github.com/RainAfterDark/ProtoMatcher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RainAfterDark%2FProtoMatcher/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264373811,"owners_count":23598083,"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","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":["deobfuscation","fuzzy-matching","protobuf","python3"],"created_at":"2025-02-03T08:33:09.707Z","updated_at":"2025-10-27T20:07:51.024Z","avatar_url":"https://github.com/RainAfterDark.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proto Matcher\n\nSimple tool for fuzzy matching obfuscated protobuf definitions with existing reference ones.\n\n## Usage\n\n- `pip install -r requirements.txt`\n- Compile a descriptor file for the protos you want to match (using `protoc` and the `--descriptor_set_out` option, see examples in `/ref_data`)\n- Provide a declaration list for protos (in `.json`, for sequential matching)\n- Run the script and fill in the necessary file paths (you can modify the generated `config.ini` later)\n\n## Commands\n\n- `search, s \u003cname\u003e`\n    \n    Search matches for a known proto. Will only show matches that meet the provided threshold in the config (default is 50%).\n\n- `uniques, u \u003cref|obs, default ref\u003e`\n\n    Print a list of protos (from reference or obfuscated) with unique signatures.\n\n- `exact_matches, em`\n\n    Print a table of exact signature matches.\n\n- `perfect_mappables, pm`\n\n    Print a table of protos that are perfectly re-mappable (unique exact matches with all unique types).\n\n- `sequential_match, sm`\n\n    Start a sequential matching session using the provided proto lists. (Not so great for now, console is too limited for this and it's better to visualize it with some kind of frontend)\n\n- `reload, r`\n\n    Reload the config from file.\n\n- `quit, q`\n\n    Exit the script.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frainafterdark%2Fprotomatcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frainafterdark%2Fprotomatcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frainafterdark%2Fprotomatcher/lists"}