16진수/바이너리 뷰어
🔐 인코딩파일을 업로드하면 바이트 단위로 16진수(Hex)와 ASCII 표현을 함께 보여주는 헥스 뷰어입니다.
파일을 드래그하거나 클릭하여 업로드
모든 파일 형식 지원
🔍 Hex Viewer란?
Hex Viewer는 파일을 바이트 단위로 풀어서 16진수와 ASCII 미리보기를 나란히 보여줍니다. 확장자가 무엇이든 디스크 위의 데이터는 결국 0~255 사이의 정수 시퀀스이므로, 헤더 몇 바이트만 읽으면 진짜 파일 형식을 가려낼 수 있습니다. 이 페이지는 행당 8/16/32바이트로 끊어 보여주고, 1KB 단위 페이지네이션으로 큰 파일도 부담 없이 훑을 수 있습니다. 업로드는 브라우저의 FileReader API로 처리되며 데이터가 네트워크로 빠져나가지 않아 안심하고 검사할 수 있습니다.
📋 주요 파일 시그니처 (매직 넘버)
🛠️ 이런 상황에서 써먹기 좋다
- 잘못된 확장자 파악: "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 등)를 함께 활용하는 편이 안전합니다.