Protobuf Wire 디코더
브라우저 처리.proto 파일 없이 Protocol Buffers 바이트(16진수 또는 Base64)를 필드 번호별로 풀어 봅니다. varint(sint 해석 포함), fixed32·64(float·double), 문자열과 중첩 메시지를 들여쓴 트리로 보여 줍니다.
- 보안·인코딩·토큰·네트워크 관련 결과는 작업 보조용입니다. 비밀번호, 비밀키, 운영 토큰, 실제 서비스 취약점 정보는 입력하지 말고 공식 보안 기준을 함께 확인하세요.
- 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
gRPC 통신이나 저장된 protobuf 데이터를 디버깅할 때 스키마(.proto)가 없으면 내용을 볼 방법이 막막합니다. protobuf는 '필드 번호 + 자료 형식' 단위로 기록되기 때문에, 이 도구는 스키마 없이도 바이트를 읽어 필드 번호마다 값을 보여 줍니다.
1: 150 (varint, sint 75)
3 {
1: 1 (varint, sint -1)
2: 3 (varint, sint -2)
5: 1069547520 (fixed32, float 1.5)
}
6: 5 (varint, sint -3)
16바이트 · .proto 없이 해석해 필드 번호만 표시합니다.
Protobuf Wire 디코더 사용 가이드
gRPC 통신이나 저장된 protobuf 데이터를 디버깅할 때 스키마(.proto)가 없으면 내용을 볼 방법이 막막합니다. protobuf는 '필드 번호 + 자료 형식' 단위로 기록되기 때문에, 이 도구는 스키마 없이도 바이트를 읽어 필드 번호마다 값을 보여 줍니다.
varint 값은 그대로의 정수와 함께 sint32·sint64에서 쓰는 zigzag 해석 값을 나란히 보여 주고, fixed32·fixed64는 정수와 float·double 해석을 함께 표시합니다. 길이가 붙은 값은 올바른 중첩 메시지로 읽히면 들여쓴 { } 블록으로, 사람이 읽을 수 있는 UTF-8이면 문자열로, 그 밖에는 16진수 바이트로 보여 줍니다.
입력은 08 96 01 같은 16진수(0x 접두사·쉼표 허용)나 Base64 모두 됩니다. 바이트가 중간에 끊겼거나 필드 번호가 0이면 몇 번째 바이트에서 문제가 생겼는지 알려 줘 데이터가 잘렸는지, 시작 위치가 틀렸는지 판단할 수 있습니다.
사용 방법
- 'Protobuf 바이트' 칸에 16진수 덤프나 Base64 문자열을 붙여 넣습니다.
- '실행'을 누르면 필드 번호: 값 (형식) 줄이 나오고, 중첩 메시지는 들여써서 보입니다.
- 가지고 있는 .proto의 필드 번호와 맞춰 보며 값의 의미를 확인합니다.
예시: 중첩 메시지가 있는 데이터
08 96 01 1a 09 08 01 10 03 2d 00 00 c0 3f 30 05
1: 150 (varint, sint 75)
3 {
1: 1 (varint, sint -1)
2: 3 (varint, sint -2)
5: 1069547520 (fixed32, float 1.5)
}
6: 5 (varint, sint -3)
16바이트 · .proto 없이 해석해 필드 번호만 표시합니다.필드 5는 float로 쓰였다면 1.5, 정수라면 1069547520입니다. 실제 형식은 .proto로 판단합니다.
이럴 때 쓰면 좋아요
- gRPC 요청·응답 바이트를 개발자 도구에서 복사해 내용을 확인할 때
- 스키마가 사라진 오래된 protobuf 데이터를 분석할 때
- 직접 만든 직렬화 코드가 올바른 바이트를 내는지 검증할 때
- protobuf 인코딩 원리(varint·태그)를 공부할 때
문제가 생겼을 때
protobuf가 아닌 데이터이거나 앞부분에 다른 머리글(gRPC의 5바이트 길이 접두사 등)이 붙어 있습니다. gRPC 메시지라면 앞의 5바이트를 빼고 넣으세요.
바이트를 복사하다 끝부분이 잘렸거나 길이 바이트가 잘못되었습니다. 전체 데이터를 다시 복사하세요.
활용 팁
- 문자열처럼 보여도 실제로는 bytes나 중첩 메시지일 수 있습니다. 한 글자짜리처럼 애매한 값은 .proto 정의와 비교하세요.
- 음수 int32·int64는 varint 10바이트로 기록되어 큰 양수로 보입니다. 원래 값이 음수라면 sint가 아닌 2의 보수로 해석하세요.
자주 묻는 질문
지원하지 않습니다. 필드 번호만 보여 주므로 .proto의 '이름 = 번호' 정의와 직접 맞춰 봐야 합니다.
proto2의 폐지된 group 형식은 지원하지 않고, 해당 위치를 알려 주는 오류를 냅니다.
packed 필드는 길이가 붙은 하나의 값이라 bytes나 문자열로 보일 수 있습니다. 16진수 값을 varint 목록으로 직접 나눠 읽어야 합니다.
계산·판단 기준
- 입력 문자열, 토큰, 해시, 인코딩 값, 네트워크 형식처럼 사용자가 제공한 데이터를 브라우저에서 변환하거나 점검합니다.
- 보안 관련 도구는 개발과 학습을 돕기 위한 참고 결과를 만들며 운영 환경 검증을 대신하지 않습니다.
- 선택한 파일, 이미지, 문서, 텍스트를 브라우저에서 읽어 변환, 압축, 병합, 추출, 미리보기합니다.
- 대부분의 파일형 도구는 업로드 전 정리나 개인 작업을 빠르게 처리하기 위한 로컬 중심 흐름입니다.
- 실제 비밀번호, 개인 키, 운영 토큰, 고객 정보, 취약점 상세처럼 노출되면 위험한 값은 입력하지 마세요.
- 해시, 토큰, 인코딩 결과는 보안성 보장이나 침해 여부 확인을 의미하지 않습니다.
- 브라우저에서 처리되더라도 원본과 결과물에는 개인정보, 위치 정보, 메타데이터, 저작권 자료가 포함될 수 있습니다.
- 큰 파일이나 복잡한 문서는 브라우저 메모리와 기기 성능에 따라 처리 결과가 달라질 수 있습니다.
- 운영 보안 판단 전에는 조직 보안 정책, 공식 문서, 전문 보안 점검 절차와 함께 확인하세요.
- 공유, 제출, 게시, 납품 전에는 원본 파일과 결과 파일의 민감 정보, 권한, 품질을 직접 확인하세요.
- 공식 외부 출처OWASP Cheat Sheet Series웹 보안 구현과 검증을 위한 실무 권고 모음입니다.
- 공식 외부 출처개인정보보호 포털파일에 포함된 개인정보를 저장·공유하기 전 확인할 정부 안내 경로입니다.
검토 범위: 입력, 실행, 결과 표시가 설명대로 동작하는지 자동으로 점검하지만 모든 입력 형식과 사용 환경을 보장하지는 않습니다. 결과를 제출하거나 공유하기 전에 직접 열어 확인하세요.