Protobuf 디코더
스키마 없이 Protocol Buffers 바이너리를 디코딩하세요. hex 또는 base64를 붙여넣거나 .bin 파일을 놓고 필드 번호, 와이어 타입, 중첩 메시지를 브라우저에서 바로 확인합니다.
.proto 스키마 없이 protobuf을 디코딩할 수 있나요?
네. protobuf 메시지는 키에 필드 번호와 와이어 타입을 함께 담은 키-값 나열입니다. 이 두 정보는 바이너리 자체에 들어 있어서, 로우 디코더는 각 필드의 의미를 몰라도 바이트를 따라가며 필드 번호·와이어 타입·중첩 메시지·문자열 구조를 재구성할 수 있습니다.
varint, 64-bit, length-delimited, 32-bit 와이어 타입은 무엇인가요?
타입 0(varint)은 가변 길이 정수, 1(64-bit)은 double이나 fixed64 같은 고정 8바이트 값, 2(length-delimited)는 길이 접두사가 붙은 블록으로 문자열·바이트·중첩 메시지일 수 있고, 5(32-bit)는 float나 fixed32 같은 고정 4바이트 값입니다.
어떤 필드는 텍스트로, 어떤 필드는 중첩 메시지로 보이는 이유는?
length-delimited 필드는 본질적으로 모호합니다. 같은 바이트가 문자열일 수도 서브메시지일 수도 있습니다. 디코더는 먼저 출력 가능한 UTF-8 텍스트인지 확인하고, 아니면 중첩 메시지로 해석을 시도하며, 둘 다 맞지 않을 때만 hex 미리보기를 보여줍니다.
음수도 올바르게 표시되나요?
네. protobuf은 음수 int32/int64을 10바이트 varint로 저장하며, 도구는 부호 없는 값과 부호 있는 해석을 함께 보여줍니다. sint32/sint64는 ZigZag 인코딩을 쓰므로 작은 음수는 작은 부호 없는 값으로 나타납니다.
데이터가 어디로 업로드되나요?
아니요, 업로드되지 않습니다. 디코딩은 전부 브라우저의 JavaScript로 실행되며 바이트는 기기를 떠나지 않습니다. 사내 데이터나 민감한 페이로드를 검사할 때 중요한 점입니다.
어떤 입력 형식을 지원하나요?
hex 텍스트(공백·콜론·쉼표·0x 접두사 유무 무관), 표준 및 URL 안전 base64, 드래그 앤 드롭한 바이너리 파일입니다. 모호한 경우 hex를 우선하며, hex와 base64를 한 번에 상호 변환할 수 있습니다.
이 도구는 어떤 용도에 유용한가요?
문서화되지 않은 API 리버스 엔지니어링, gRPC 서비스나 protobuf 기반 메시지 큐 디버깅, 직렬화된 캐시와 파일 검사, 와이어 포맷 학습, 자작 인코더가 기대한 바이트를 정확히 만드는지 검증에 유용합니다.
필드 이름도 알려주나요?
아니요. 필드 이름은 바이너리가 아니라 .proto 스키마에 있습니다. 도구는 필드 번호를 보여주고, 스키마에서 번호를 이름에 대응시키면 트리 전체를 바로 읽을 수 있습니다.
오류에 표시되는 바이트 오프셋은 무엇인가요?
데이터가 손상되었거나 잘렸을 때 디코딩은 해석할 수 없는 첫 바이트에서 멈춥니다. 표시된 오프셋이 입력의 그 바이트를 정확히 가리켜 손상 위치를 바로 찾을 수 있습니다.
Protobuf 디코더 사용 방법
이 Protobuf 디코더는 .proto 스키마 없이도 원본 protocol buffer 메시지를 읽습니다. protobuf 페이로드는 스스로 필드 번호와 와이어 타입을 담고 있어서, 디코더가 메시지 구조 전체를 복원할 수 있습니다 — varint, 고정 32/64비트 값, UTF-8 문자열, 중첩 서브메시지 — 그리고 펼칠 수 있는 트리로 보여 줍니다. 모든 것이 브라우저에서 로컬로 실행되며 바이트는 절대 업로드되지 않습니다.
- 데이터를 입력 상자에 hex(공백, 콜론, 쉼표, 0x 접두사 모두 허용)나 base64로 붙여넣으세요. 감지된 형식은 버튼 옆에 표시됩니다.
- 페이로드가 원본 바이너리라면 대신 .bin 파일을 입력 영역으로 끌어다 놓으세요. 즉시 읽혀 디코딩됩니다.
- 데모를 클릭하면 내장 샘플이 불러와집니다. UTF-8 문자열, 지그재그 varint, packed repeated 필드, double, 두 단계 깊이의 중첩 메시지가 들어 있습니다.
- 결과 트리를 훑어보세요. 각 행은 필드 번호, 와이어 타입(varint / 64-bit / length-delimited / 32-bit), 해석된 값을 보여 주고, 캐럿이 있는 행은 중첩 서브메시지로 펼쳐집니다.
- 「→ Base64」와 「→ HEX」 버튼으로 현재 입력을 두 인코딩 사이에서 변환하거나, 「HEX 복사」로 동등한 hex 문자열을 클립보드에 넣으세요.
- 데이터가 손상되었거나 잘렸다면 디코딩은 첫 번째 잘못된 바이트에서 멈추고, 오류 행이 정확한 바이트 오프셋을 알려 줍니다.
length-delimited 필드에 중첩 메시지가 들어 있으면 펼칠 수 있는 하위 트리로 렌더링됩니다. 텍스트를 기대했다면 그저 바이트가 인쇄 가능한 UTF-8이 아니었을 뿐입니다. 이것이 protobuf의 모호성 해소 방식이지 버그가 아닙니다.
관련 도구
- Base64 인코딩/디코딩 무료 온라인 Base64 인코더 및 디코더. 텍스트를 Base64로, Base64를 텍스트로 즉시 변환. 서버 업로드 없음, 100% 비공개.
- Hex 뷰어 검색, 오프셋 탐색 및 가상 스크롤링으로 파일 내용을 헥스 덤프 형식으로 보기
- 바이너리를 텍스트로 바이너리 코드를 읽을 수 있는 텍스트로 변환합니다.
- JWT 디코더 무료 온라인 JWT 디코더. JWT를 즉시 디코딩하여 헤더, 페이로드, 서명을 확인. 등록 불필요.
- X.509 인증서 디코더 무료 온라인 X.509 인증서 디코더. PEM 또는 base64 DER 인증서를 붙여넣어 주체, 발급자, 유효 기간, SAN, 키 유형, 지문을 확인하세요. 100% 로컬 처리, 업로드 없음.
- 파일 해시 MD5, SHA-1, SHA-256, SHA-512 파일 해시 로컬 계산 및 검증
- Chmod 계산기 체크박스 포함 Linux 파일 권한을 시각화하고 계산하는 무료 온라인 chmod 계산기. 숫자(755, 644)와 기호 표기법(rwxr-xr-x)을 즉시 변환. setuid, setgid, sticky bit 같은 특수 권한 지원.
- ASCII 코드표 10진수, 16진수, 8진수, 2진수 코드, HTML 엔티티 및 문자 설명을 포함한 완전한 ASCII 문자 인코딩 참조. 즉시 검색 및 필터링.