{"id":29692196,"url":"https://github.com/rsc-dev/pbd","last_synced_at":"2025-07-23T07:34:31.055Z","repository":{"id":57451221,"uuid":"50019267","full_name":"rsc-dev/pbd","owner":"rsc-dev","description":"Pbd is a Python module to disassemble serialized protocol buffers descriptors (https://developers.google.com/protocol-buffers/).","archived":false,"fork":false,"pushed_at":"2021-01-12T17:32:38.000Z","size":11,"stargazers_count":86,"open_issues_count":0,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-02T23:57:03.192Z","etag":null,"topics":["disassembler","protocol-buffers","protocol-buffers-disassembler","python","reverse-engineering","security"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"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/rsc-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"rsc-dev"}},"created_at":"2016-01-20T09:27:14.000Z","updated_at":"2024-04-12T02:41:21.000Z","dependencies_parsed_at":"2022-09-10T08:00:59.141Z","dependency_job_id":null,"html_url":"https://github.com/rsc-dev/pbd","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rsc-dev/pbd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsc-dev%2Fpbd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsc-dev%2Fpbd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsc-dev%2Fpbd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsc-dev%2Fpbd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rsc-dev","download_url":"https://codeload.github.com/rsc-dev/pbd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsc-dev%2Fpbd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266639176,"owners_count":23960758,"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-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["disassembler","protocol-buffers","protocol-buffers-disassembler","python","reverse-engineering","security"],"created_at":"2025-07-23T07:34:30.454Z","updated_at":"2025-07-23T07:34:31.036Z","avatar_url":"https://github.com/rsc-dev.png","language":"Python","funding_links":["https://github.com/sponsors/rsc-dev"],"categories":[],"sub_categories":[],"readme":"# Pbd - Protocol Buffers Disassembler\n\n[![PyPI](https://img.shields.io/pypi/v/pbd.svg)](https://pypi.python.org/pypi/pbd)\n[![Join the chat at https://gitter.im/rsc-dev/pbd](https://badges.gitter.im/rsc-dev/pbd.svg)](https://gitter.im/rsc-dev/pbd?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n## About\nPbd is a Python module to disassemble serialized protocol buffers descriptors (https://developers.google.com/protocol-buffers/).\n\nExample:\n```sh\n\u003epython -m pbd -f examples\\test.ser\n\n _|_|_|    _|              _|\n _|    _|  _|_|_|      _|_|_|\n _|_|_|    _|    _|  _|    _|\n _|        _|    _|  _|    _|\n _|        _|_|_|      _|_|_|\n\n                      ver 0.9\n\n[+] Paring file test.ser\n[+] Proto file saved as .\\test.proto\n\u003etype test.proto\n// Reversed by pbd (https://github.com/rsc-dev/pbd)\n// Package not defined\n\nmessage Person {\n        required string name = 1 ;\n        required int32 id = 2 ;\n        optional string email = 3 ;\n}\n```\n\n## Installation\n```sh\npip install pbd\n```\nor\n```sh\npython setup.py install\n```\n\n## Usage\n### API\n\n```python\nimport pbd\n\ninput_file_name = 'test.protoc'\n\nproto = Pbd(input_file_name)\nproto.disassemble()\nproto.dump()\n```\n\nFor multiple files with imports:\n```python\nimport os\nimport pbd\n\ninput_dir = 'input\\\\'  # Input directory with serialized descriptors\noutput_dir = 'output\\\\'  # Output direcotry for proto files\ninput_files = [f for f in os.listdir(input_dir) if os.path.isfile(os.path.join(input_dir, f))] \n\nproto = []\n\nfor f in files:\n    p = Pbd(f)\n    p.disassemble()\n    proto.append(p)\n        \nfor p in proto: \n    p.find_imports(proto)\n    p.dump(output_dir)\n```\n\n\n### Standalone module\nCheck help for available options:\n```sh\npython -m pbd -h\n```\n\nDisasm single file.\n```sh\npython -m pbd -f test.ser\n```\n\nDisasm all files in given directory and fix imports.\n```sh\npython -m pbd -i input_dir\\ -o output_dir\\\n```\n\n## License\nCode is released under [MIT license](https://github.com/rsc-dev/loophole/blob/master/LICENSE.md) © [Radoslaw '[rsc]' Matusiak](https://rm2084.blogspot.com/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsc-dev%2Fpbd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frsc-dev%2Fpbd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsc-dev%2Fpbd/lists"}