본문으로 건너뛰기

매직 넘버란 무엇인가?

매직 넘버는 모든 파일 시작 부분에 있는 짧고 고정된 바이트 시퀀스입니다. 확장자를 읽기 전에 형식을 식별합니다. 이 페이지에서는 작동 방식, 가장 흔한 시그니처의 모습, 그리고 파일 이름 검사보다 매직 바이트 검사가 항상 더 나은 이유를 다룹니다.

  • 쉬운 한국어 설명
  • 14가지 형식 정리
  • 바이트는 브라우저 밖으로 나가지 않습니다

핵심 정보

  • 무엇인가요?

    매직 넘버는 파일의 형식을 식별하기 위해 파일 시작 부분에 있는 고정된 바이트 시퀀스 (보통 2에서 8바이트)입니다.

  • 어디에 있나요?

    거의 항상 바이트 오프셋 0에 위치합니다. ISO 9660 디스크 이미지는 잘 알려진 예외로, CD001 시그니처가 오프셋 32769 (섹터 16)에 있습니다.

  • 확장자 vs 바이트?

    바이트가 승리합니다. report.exereport.pdf로 이름 바꿔도 라벨만 바뀌고 내용은 그대로입니다. 매직 바이트는 여전히 4D 5A입니다.

  • 어떤 결과가 나오나요?

    당사 파일 형식 검사기는 MATCH, MISMATCH, AMBIGUOUS, UNKNOWN 네 가지 결과 중 하나를 알려줍니다. 각 결과는 안전성이 아닌 형식 식별에 대한 확정적인 답입니다.

  • 개인정보 보호

    무료 단일 파일 흐름은 전적으로 브라우저 안에서 실행됩니다. 바이트는 기기 밖으로 나가지 않습니다.

  • 안전성 범위

    매직 바이트 검사는 형식을 식별할 뿐 악성코드를 판단하지 않습니다. 바이러스 판정이 아니라 1차 신호로만 사용하세요.

매직 넘버 (매직 바이트 시그니처 또는 파일 시그니처라고도 합니다)는 파일의 실제 형식을 식별하기 위해 파일 맨 앞에 기록된 짧고 고정된 바이트 시퀀스입니다. 운영 체제는 파일 확장자보다 이것을 먼저 확인합니다. 확장자는 단지 힌트일 뿐이며, 매직 넘버가 진실입니다.

매직 바이트 시그니처 참조표

형식 사양에서 가져온 14가지 널리 쓰이는 시그니처입니다. 16진수 바이트는 대문자에 공백으로 구분합니다. ASCII 미리보기는 출력 불가능한 바이트를 점으로 대체합니다.

  • PDF

    매직 바이트 (16진수):
    25 50 44 46
    ASCII:
    %PDF
    확장자:
    .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

    네 바이트가 %PDF를 나타냅니다. 바로 뒤에 PDF 버전이 따라옵니다. 예: %PDF-1.7.

  • 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. 1

    첫 바이트 읽기

    파일을 바이너리 스트림으로 열어 처음 8에서 16바이트를 읽습니다. 위 표의 모든 시그니처를 인식하기에 충분합니다.

  2. 2

    알려진 시그니처와 비교

    바이트를 알려진 형식 데이터베이스와 대조합니다. 여러 형식이 같은 접두부를 공유할 수 있으므로 (모든 Office 문서가 ZIP입니다), 검사는 가장 구체적인 일치를 반환합니다.

  3. 3

    파일 확장자와 교차 확인

    감지된 형식이 확장자가 주장하는 것과 일치하지 않으면 결과는 MISMATCH입니다. 여러 형식이 들어맞으면 AMBIGUOUS, 어떤 것도 맞지 않으면 UNKNOWN입니다.

왜 중요한가요?

파일 이름을 invoice.exe에서 invoice.pdf로 바꿔도 바이트는 변하지 않습니다. 처음 두 바이트는 여전히 4D 5A입니다. 매직 넘버 검사는 이를 즉시 잡아냅니다. 첨부 파일이 정상으로 보이지만 발송 전 확장자가 변경된 경우에 유용합니다.

매직 바이트 검사는 반대의 경우도 잡아냅니다. 확장자가 전혀 없지만 유효한 PNG 바이트를 가진 파일은 여전히 PNG이며 이미지 뷰어로 열 수 있습니다. 형식 정체성은 파일 이름이 아니라 바이트에 있습니다.

용어 사전

자주 묻는 질문

직접 가진 파일로 시도해 보세요

아무 파일이나 올려놓으세요. 검사는 로컬에서 실행되며 1초 안에 결과가 나옵니다. 바이트는 브라우저 밖으로 나가지 않습니다.

파일 형식 검사기 열기