16진수/바이너리 뷰어

🔐 인코딩

파일을 업로드하면 바이트 단위로 16진수(Hex)와 ASCII 표현을 함께 보여주는 헥스 뷰어입니다.

📁

파일을 드래그하거나 클릭하여 업로드

모든 파일 형식 지원

🔍 Hex Viewer란?

Hex Viewer는 파일을 바이트 단위로 풀어서 16진수와 ASCII 미리보기를 나란히 보여줍니다. 확장자가 무엇이든 디스크 위의 데이터는 결국 0~255 사이의 정수 시퀀스이므로, 헤더 몇 바이트만 읽으면 진짜 파일 형식을 가려낼 수 있습니다. 이 페이지는 행당 8/16/32바이트로 끊어 보여주고, 1KB 단위 페이지네이션으로 큰 파일도 부담 없이 훑을 수 있습니다. 업로드는 브라우저의 FileReader API로 처리되며 데이터가 네트워크로 빠져나가지 않아 안심하고 검사할 수 있습니다.

📋 주요 파일 시그니처 (매직 넘버)

89 50 4E 47 — PNG 이미지
FF D8 FF — JPEG 이미지
25 50 44 46 — PDF 문서
50 4B 03 04 — ZIP 아카이브
47 49 46 38 — GIF 이미지
4D 5A — Windows EXE

🛠️ 이런 상황에서 써먹기 좋다

  • 잘못된 확장자 파악: "photo.jpg"가 사실은 ZIP일 수 있습니다. 첫 4바이트가 50 4B 03 04면 ZIP, 89 50 4E 47이면 PNG입니다.
  • BOM 확인: UTF-8 BOM(EF BB BF)이나 UTF-16 BOM(FF FE)을 달고 있는지 파악해 인코딩 오류 원인을 추적합니다.
  • EXIF/메타데이터 위치 추정: JPEG의 FF E1 마커, PNG의 tEXt·eXIf 청크 위치를 눈으로 확인합니다.
  • 망가진 파일 응급조치: 헤더 일부 손상으로 열리지 않는 PDF, ZIP 등을 정상 파일과 비교하면서 패치 위치를 찾을 때 유용합니다.
  • CTF/리버스 엔지니어링 입문: ELF(7F 45 4C 46), Mach-O, PE 헤더의 기본 구조 학습에도 자주 등장합니다.

💡 알아두면 좋은 점

파일은 서버로 전송되지 않습니다. 브라우저의 FileReader API가 ArrayBuffer로 메모리에 올린 뒤 같은 페이지 안에서만 동작하므로, 외부 업로드가 금지된 환경에서도 안전합니다.

자주 묻는 질문

파일 시그니처(매직 넘버)란?

거의 모든 바이너리 포맷은 파일 첫머리에 자신을 식별하는 고정 바이트 패턴을 박아둡니다. 예를 들어 PNG는 8바이트의 <code>89 50 4E 47 0D 0A 1A 0A</code>로 시작하며, 이 값이 어긋나면 뷰어가 곧바로 거부합니다. 확장자만 보지 말고 시그니처를 확인하면 파일을 더 정확히 판별할 수 있습니다.

파일이 서버로 전송되나요?

전송되지 않습니다. 브라우저의 FileReader API가 파일을 ArrayBuffer로 메모리에 올린 뒤, 표시 로직이 같은 페이지 안에서만 동작합니다. 회사 보안 정책상 외부 업로드가 금지된 환경에서도 안전하게 사용할 수 있습니다.

대용량 파일도 열 수 있나요?

전체 파일을 메모리에 적재하기 때문에 수백 MB 이상이면 브라우저 메모리 사용량이 급격히 올라 응답이 느려질 수 있습니다. 1KB 단위 페이지네이션으로 탐색 효율은 유지되지만, 실무에서 수 GB 덤프를 분석할 때는 데스크톱 전용 도구(010 Editor, HxD 등)를 함께 활용하는 편이 안전합니다.

관련 도구

광고