A tool to reverse-engineer and parse Protocol Buffers encoded blobs without knowing their definition.
protobuf-inspector is a Python tool that parses and displays the structure of Google Protocol Buffers encoded data without needing the original .proto definition files. It helps developers reverse-engineer unknown protobuf formats, debug wire-level issues, and understand the internal layout of binary protobuf blobs through a colored, hierarchical output.
Developers and reverse-engineers working with unknown or undocumented Protocol Buffers data, parser developers needing to debug wire formats, and anyone analyzing binary protobuf blobs without schema access.
It provides a unique, visual way to explore protobuf data blindly, with error-resilient parsing and incremental field definition support, making it more accessible than manual hex analysis or requiring full schema knowledge.
🕵️ Tool to reverse-engineer Protocol Buffers with unknown definition
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Parses protobuf blobs without any schema by guessing field types and message structures, making it unique for reverse-engineering unknown formats.
Displays a colored, structured representation of data in wire order, showing field numbers and values, which aids in understanding complex blobs.
Continues parsing outside errored fields and provides stack traces with hexdumps, as shown in the error examples, helping debug wire-level issues.
Allows users to define fields incrementally via configuration, enabling iterative refinement of schemas from raw data.
Loses details like zig-zag encoding and float/integer distinctions, and can misparse small chunks, as admitted in the README's limitations section.
Not designed as a library, with the README warning that the API might change, making it risky for code integration or long-term projects.
Being a Python-based tool, it may not be suitable for parsing large blobs quickly or in resource-constrained environments compared to compiled alternatives.
Only handles Google Protocol Buffers, so it's not a general binary analysis tool for other serialization formats like JSON or MessagePack.