네 바이트가 %PDF를 나타냅니다. 바로 뒤에 PDF 버전이 따라옵니다. 예: %PDF-1.7.
매직 넘버란 무엇인가?
매직 넘버는 모든 파일 시작 부분에 있는 짧고 고정된 바이트 시퀀스입니다. 확장자를 읽기 전에 형식을 식별합니다. 이 페이지에서는 작동 방식, 가장 흔한 시그니처의 모습, 그리고 파일 이름 검사보다 매직 바이트 검사가 항상 더 나은 이유를 다룹니다.
- 쉬운 한국어 설명
- 14가지 형식 정리
- 바이트는 브라우저 밖으로 나가지 않습니다
핵심 정보
무엇인가요?
매직 넘버는 파일의 형식을 식별하기 위해 파일 시작 부분에 있는 고정된 바이트 시퀀스 (보통 2에서 8바이트)입니다.
어디에 있나요?
거의 항상 바이트 오프셋 0에 위치합니다. ISO 9660 디스크 이미지는 잘 알려진 예외로,
CD001시그니처가 오프셋 32769 (섹터 16)에 있습니다.확장자 vs 바이트?
바이트가 승리합니다.
report.exe를report.pdf로 이름 바꿔도 라벨만 바뀌고 내용은 그대로입니다. 매직 바이트는 여전히4D 5A입니다.어떤 결과가 나오나요?
당사 파일 형식 검사기는 MATCH, MISMATCH, AMBIGUOUS, UNKNOWN 네 가지 결과 중 하나를 알려줍니다. 각 결과는 안전성이 아닌 형식 식별에 대한 확정적인 답입니다.
개인정보 보호
무료 단일 파일 흐름은 전적으로 브라우저 안에서 실행됩니다. 바이트는 기기 밖으로 나가지 않습니다.
안전성 범위
매직 바이트 검사는 형식을 식별할 뿐 악성코드를 판단하지 않습니다. 바이러스 판정이 아니라 1차 신호로만 사용하세요.
매직 넘버 (매직 바이트 시그니처 또는 파일 시그니처라고도 합니다)는 파일의 실제 형식을 식별하기 위해 파일 맨 앞에 기록된 짧고 고정된 바이트 시퀀스입니다. 운영 체제는 파일 확장자보다 이것을 먼저 확인합니다. 확장자는 단지 힌트일 뿐이며, 매직 넘버가 진실입니다.
매직 바이트 시그니처 참조표
형식 사양에서 가져온 14가지 널리 쓰이는 시그니처입니다. 16진수 바이트는 대문자에 공백으로 구분합니다. ASCII 미리보기는 출력 불가능한 바이트를 점으로 대체합니다.
PDF
- 매직 바이트 (16진수):
25 50 44 46- ASCII:
%PDF- 확장자:
- MIME 타입:
application/pdf- 오프셋:
- 0번째 바이트
PNG
- 매직 바이트 (16진수):
89 50 4E 47 0D 0A 1A 0A- ASCII:
.PNG....- 확장자:
- .png
- MIME 타입:
image/png- 오프셋:
- 0번째 바이트
JPEG
- 매직 바이트 (16진수):
FF D8 FF- ASCII:
...- 확장자:
- .jpg, .jpeg
- MIME 타입:
image/jpeg- 오프셋:
- 0번째 바이트
GIF
- 매직 바이트 (16진수):
47 49 46 38 39 61- ASCII:
GIF89a- 확장자:
- .gif
- MIME 타입:
image/gif- 오프셋:
- 0번째 바이트
BMP
- 매직 바이트 (16진수):
42 4D- ASCII:
BM- 확장자:
- .bmp
- MIME 타입:
image/bmp- 오프셋:
- 0번째 바이트
ZIP
- 매직 바이트 (16진수):
50 4B 03 04- ASCII:
PK..- 확장자:
- .zip
- MIME 타입:
application/zip- 오프셋:
- 0번째 바이트
RAR (v5)
- 매직 바이트 (16진수):
52 61 72 21 1A 07 01 00- ASCII:
Rar!....- 확장자:
- .rar
- MIME 타입:
application/vnd.rar- 오프셋:
- 0번째 바이트
7-Zip
- 매직 바이트 (16진수):
37 7A BC AF 27 1C- ASCII:
7z....- 확장자:
- .7z
- MIME 타입:
application/x-7z-compressed- 오프셋:
- 0번째 바이트
DOCX (Office Open XML)
- 매직 바이트 (16진수):
50 4B 03 04- ASCII:
PK..- 확장자:
- .docx
- MIME 타입:
application/vnd.openxmlformats-officedocument.wordprocessingml.document- 오프셋:
- 0번째 바이트
XLSX (Office Open XML)
- 매직 바이트 (16진수):
50 4B 03 04- ASCII:
PK..- 확장자:
- .xlsx
- MIME 타입:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet- 오프셋:
- 0번째 바이트
APK (Android package)
- 매직 바이트 (16진수):
50 4B 03 04- ASCII:
PK..- 확장자:
- .apk
- MIME 타입:
application/vnd.android.package-archive- 오프셋:
- 0번째 바이트
MP4 (ISO BMFF)
- 매직 바이트 (16진수):
00 00 00 20 66 74 79 70- ASCII:
....ftyp- 확장자:
- .mp4, .m4v
- MIME 타입:
video/mp4- 오프셋:
- 0번째 바이트
Windows PE / EXE
- 매직 바이트 (16진수):
4D 5A- ASCII:
MZ- 확장자:
- .exe, .dll, .sys
- MIME 타입:
application/vnd.microsoft.portable-executable- 오프셋:
- 0번째 바이트
ISO 9660
- 매직 바이트 (16진수):
43 44 30 30 31- ASCII:
CD001- 확장자:
- .iso
- MIME 타입:
application/x-iso9660-image- 오프셋:
- 번째 바이트 (섹터 16)
PDF
PNG
PNG 줄바꿈 마커 (
0D 0A 1A 0A)를 포함한 여덟 바이트로, 전송 오류를 감지할 수 있습니다.JPEG
이미지 시작 마커입니다. 네 번째 바이트로 JFIF (
E0)와 EXIF (E1)를 구분합니다.GIF
GIF89a는 최신 변형입니다. GIF87a (
47 49 46 38 37 61)는 구형 표기이며 여전히 유효합니다.BMP
두 바이트입니다. 위조하기 쉬우므로 오프셋 2의 파일 크기 헤더와 함께 확인해 구분하세요.
ZIP
로컬 파일 헤더입니다. 빈 아카이브는 대신
50 4B 05 06(중앙 디렉터리 끝)을 사용합니다.RAR (v5)
RAR 5 시그니처입니다. 구형 RAR 1.5에서 4.x 버전 파일은
00으로 끝나는 7바이트 시그니처를 사용합니다.7-Zip
7z를 나타내는 두 바이트 뒤에 세 개의 매직 바이트가 따릅니다.DOCX (Office Open XML)
DOCX는 ZIP 컨테이너입니다. 시그니처만으로는 Word 문서와 일반 ZIP을 구분할 수 없습니다. 내부
[Content_Types].xml을 확인하세요.XLSX (Office Open XML)
DOCX와 같은 주의가 필요합니다. OOXML 매니페스트를 검사해 스프레드시트 형식인지 확인하세요.
APK (Android package)
APK는 안드로이드 매니페스트가 들어 있는 ZIP 컨테이너입니다. ZIP 시그니처만으로는 충분한 증거가 아닙니다.
MP4 (ISO BMFF)
오프셋 4의
ftyp박스가 브랜드 식별자를 담고 있습니다. 흔한 브랜드:isom,mp42,iso5.Windows PE / EXE
두 바이트입니다 (마크 즈비코우스키). PE 헤더 오프셋은 바이트 0x3C에서 읽으며, 실제
PE\0\0매직 바이트는 그 위치에 있습니다.ISO 9660
ISO 9660은 볼륨 디스크립터를 섹터 16에 배치하므로 시그니처는 바이트 32769 (16 * 2048 + 1)에 위치합니다.
매직 바이트 검사 작동 방식
- 1
첫 바이트 읽기
파일을 바이너리 스트림으로 열어 처음 8에서 16바이트를 읽습니다. 위 표의 모든 시그니처를 인식하기에 충분합니다.
- 2
알려진 시그니처와 비교
바이트를 알려진 형식 데이터베이스와 대조합니다. 여러 형식이 같은 접두부를 공유할 수 있으므로 (모든 Office 문서가 ZIP입니다), 검사는 가장 구체적인 일치를 반환합니다.
- 3
파일 확장자와 교차 확인
감지된 형식이 확장자가 주장하는 것과 일치하지 않으면 결과는 MISMATCH입니다. 여러 형식이 들어맞으면 AMBIGUOUS, 어떤 것도 맞지 않으면 UNKNOWN입니다.
왜 중요한가요?
파일 이름을 invoice.exe에서 invoice.pdf로 바꿔도 바이트는 변하지 않습니다. 처음 두 바이트는 여전히 4D 5A입니다. 매직 넘버 검사는 이를 즉시 잡아냅니다. 첨부 파일이 정상으로 보이지만 발송 전 확장자가 변경된 경우에 유용합니다.
매직 바이트 검사는 반대의 경우도 잡아냅니다. 확장자가 전혀 없지만 유효한 PNG 바이트를 가진 파일은 여전히 PNG이며 이미지 뷰어로 열 수 있습니다. 형식 정체성은 파일 이름이 아니라 바이트에 있습니다.
용어 사전
형식별 심층 안내
각 페이지는 하나의 형식에 집중합니다. 식별 방법, 흔한 불일치 패턴, 원클릭 검사가 담겨 있습니다. 어느 페이지에 파일을 올려도 결과는 동일합니다.
- .pdfPDF
Portable Document Format file
Magic bytes
25 50 44 46이 파일이 정말 PDF일까요? - .exeEXE
Windows executable
Magic bytes
4D 5A이 파일이 정말 EXE일까요? - .zipZIP
compressed archive
Magic bytes
50 4B 03 04이 파일이 정말 ZIP일까요? - .docxDOCX
Microsoft Word document
Magic bytes
50 4B 03 04이 파일이 정말 DOCX일까요? - .xlsxXLSX
Microsoft Excel spreadsheet
Magic bytes
50 4B 03 04이 파일이 정말 XLSX일까요? - .pngPNG
Portable Network Graphics image
Magic bytes
89 50 4E 47 0D 0A 1A 0A이 파일이 정말 PNG일까요? - .jpgJPG
JPEG photograph
Magic bytes
FF D8 FF이 파일이 정말 JPG일까요? - .mp4MP4
MPEG-4 video
Magic bytes
00 00 00 20 66 74 79 70이 파일이 정말 MP4일까요? - .apkAPK
Android package
Magic bytes
50 4B 03 04이 파일이 정말 APK일까요? - .isoISO
optical disc image
Magic bytes
43 44 30 30 31이 파일이 정말 ISO일까요?