Decodificador de Protobuf Online
Decodifica un mensaje binario de Protocol Buffers sin el esquema .proto, en tu navegador. Tus bytes se quedan en tu dispositivo.
Tus bytes de protobuf se decodifican localmente en tu navegador y nunca se suben, pero evita pegar mensajes que contengan secretos reales o datos personales en cualquier herramienta.
¿Necesitas decodificar un JWT? Prueba el Decodificador de JWT.
Acerca de Decodificador de Protobuf
Este decodificador de protobuf lee un mensaje binario de Protocol Buffers directamente de sus bytes, sin requerir un archivo .proto. Pega el payload en hex o base64 y el decodificador recorre el formato de cable en crudo: lee cada tag para recuperar el número de campo y el tipo de cable, luego interpreta el valor. Los varints se muestran como lecturas int64, uint64 y zig-zag; los campos fixed64 y fixed32 exponen sus vistas de entero, double y float; y los campos delimitados por longitud se prueban primero como mensajes anidados, luego como texto UTF-8 y luego como bytes hex en crudo. El resultado se representa como un árbol de campos con sangría, con los campos repetidos agrupados bajo el mismo número. Está hecho para ingenieros que depuran tráfico gRPC, paquetes capturados o blobs proto opacos de los registros. Todo se ejecuta en tu navegador, así que los bytes que pegas se decodifican localmente y nunca salen de tu dispositivo.
Características
- Decodifica cualquier mensaje de Protocol Buffers desde bytes en crudo sin necesitar el esquema .proto
- Acepta entrada en hex o base64 con detección automática y un conmutador de formato manual
- Lee los tipos de cable varint, fixed64, delimitado por longitud y fixed32 a partir del tag
- Muestra los varints como interpretaciones int64, uint64, zig-zag con signo y booleana
- Representa los campos fixed64/fixed32 como vistas de entero, double y float más los bytes en crudo
- Decodifica recursivamente los mensajes anidados y recurre a cadenas UTF-8 o bytes hex
- Agrupa los campos repetidos bajo el mismo número de campo en un árbol con sangría
- Reporta un error claro para entradas truncadas, malformadas o que no son protobuf
Cómo usar Decodificador de Protobuf
- Copia tu payload de protobuf como una cadena hex o base64.
- Pégalo en el cuadro del mensaje Protobuf.
- Deja el formato en Auto, o elige Hex o Base64 si la detección es incorrecta.
- Lee el árbol de campos decodificado, expandiendo los mensajes anidados para inspeccionar los valores.
Ejemplo
Entrada
08 96 01 12 07 74 65 73 74 69 6e 67
Salida
#1 varint wire 0 150
#2 string wire 2 "testing"
El campo 1 es un varint (150) y el campo 2 es una cadena UTF-8 delimitada por longitud.
Errores comunes y solución de problemas
- El decodificador muestra "Input is not valid hex" o "Input is not valid base64". — Cambia el conmutador de formato para que coincida con tus datos, o elimina los caracteres sobrantes; el hex debe ser pares de 0-9a-f y el base64 debe usar el alfabeto estándar o seguro para URL.
- Un campo que debería ser una cadena se representa como un mensaje anidado o hex en crudo. — Sin el archivo .proto el decodificador adivina a partir de los bytes; los campos delimitados por longitud son ambiguos, así que un submensaje que parece texto, o viceversa, puede leerse mal.
- La decodificación falla con "Length-delimited field runs past the end of the input". — El payload está truncado o no es realmente protobuf. Vuelve a capturar el mensaje completo y confirma que copiaste cada byte, incluidos los finales.
- Los tipos de cable de grupo se reportan como no soportados. — Los tipos de cable 3 y 4 (start-group/end-group) están obsoletos en protobuf y rara vez se emiten; vuelve a codificar el mensaje con campos proto2/proto3 en lugar de grupos.
Preguntas frecuentes
- ¿Puedo decodificar protobuf sin el archivo .proto?
- Sí. Este decodificador de protobuf lee el formato de cable en crudo, así que recupera cada número de campo, tipo de cable y valor directamente de los bytes. Sin el esquema no puede saber los nombres de campo originales ni si un número se pensó como un valor con signo, sin signo o enum, así que muestra las interpretaciones plausibles lado a lado.
- ¿Qué significan los tipos de cable de protobuf?
- Cada tag de campo codifica un tipo de cable: 0 es un varint (ints, bools, enums), 1 es fixed64 (sfixed64, double), 2 es delimitado por longitud (cadenas, bytes y mensajes anidados) y 5 es fixed32 (sfixed32, float). El decodificador etiqueta cada campo con su tipo de cable para que puedas mapearlo de vuelta a la definición de origen.
- ¿Debería pegar el protobuf como hex o base64?
- Cualquiera funciona. Deja el conmutador en Auto y la herramienta detecta el formato; el hex limpio (pares de dígitos hex, con espacios, dos puntos o prefijos 0x opcionales) se lee como hex y todo lo demás se trata como base64, incluido el base64 seguro para URL. Cambia el conmutador manualmente si tus datos son ambiguos.
- ¿Por qué un varint se muestra como varios números diferentes?
- Un varint de protobuf puede representar un int64, un uint64 o un sint64 codificado en zig-zag, y el formato de cable no registra cuál. El decodificador imprime todos, más una lectura booleana para 0 y 1, para que puedas elegir la interpretación que coincida con tu esquema.
- ¿El payload decodificado se sube a algún lugar?
- No. La decodificación de protobuf se ejecuta por completo en tu navegador usando un analizador de formato de cable en JavaScript puro, así que los bytes que pegas se procesan en tu dispositivo y nunca se envían a un servidor.
Herramientas relacionadas
Todas las herramientas de ArrayKit