Hopp til innhold

Hva er et magisk tall?

Et magisk tall er den korte faste byte-sekvensen i starten av hver fil. Det identifiserer formatet før noen filendelse blir lest. Denne siden dekker hvordan de fungerer, hvordan de vanligste signaturene ser ut, og hvorfor en magisk-byte-sjekk slår en filnavn-sjekk hver gang.

  • Forklaring på vanlig norsk
  • 14 formater dekket
  • Byter forlater aldri nettleseren din

Nøkkelfakta

  • Hva er det?

    Et magisk tall er en fast byte-sekvens (vanligvis 2 til 8 byter) i starten av en fil som identifiserer formatet.

  • Hvor finnes det?

    Nesten alltid ved byte-offset 0. ISO 9660-diskbilder er det velkjente unntaket: deres CD001-signatur sitter på offset 32769 (sektor 16).

  • Filendelse eller byter?

    Bytene vinner. Å endre navn fra report.exe til report.pdf endrer etiketten, ikke innholdet. De magiske bytene leser fortsatt 4D 5A.

  • Hva du får tilbake

    Vår filtypesjekker rapporterer en av fire avgjørelser: MATCH, MISMATCH, AMBIGUOUS eller UNKNOWN. Hver er et deterministisk svar om formatidentitet, ikke sikkerhet.

  • Personvern

    Den gratis enkeltfilflyten kjører helt i nettleseren din. Bytene forlater aldri enheten din.

  • Sikkerhetsomfang

    En magisk-byte-sjekk identifiserer format, ikke malware. Bruk det som et første signal, ikke som en virusavgjørelse.

Et magisk tall (også kalt en magisk-byte-signatur eller filsignatur) er en kort, fast byte-sekvens skrevet helt i starten av en fil som identifiserer dens ekte format. Operativsystemet bruker det før noen filendelse. Filendelsen er bare et hint; det magiske tallet er sannheten.

Referanse for magisk-byte-signaturer

14 mye brukte signaturer hentet fra formatspesifikasjonene. Hex-byter er store bokstaver, mellomrom-adskilte. ASCII-forhåndsvisninger erstatter ikke-utskrivbare byter med et punkt.

  • PDF

    Magiske byter (hex):
    25 50 44 46
    ASCII:
    %PDF
    Filendelser:
    .pdf
    MIME-type:
    application/pdf
    Offset:
    byte 0
  • PNG

    Magiske byter (hex):
    89 50 4E 47 0D 0A 1A 0A
    ASCII:
    .PNG....
    Filendelser:
    .png
    MIME-type:
    image/png
    Offset:
    byte 0
  • JPEG

    Magiske byter (hex):
    FF D8 FF
    ASCII:
    ...
    Filendelser:
    .jpg, .jpeg
    MIME-type:
    image/jpeg
    Offset:
    byte 0
  • GIF

    Magiske byter (hex):
    47 49 46 38 39 61
    ASCII:
    GIF89a
    Filendelser:
    .gif
    MIME-type:
    image/gif
    Offset:
    byte 0
  • BMP

    Magiske byter (hex):
    42 4D
    ASCII:
    BM
    Filendelser:
    .bmp
    MIME-type:
    image/bmp
    Offset:
    byte 0
  • ZIP

    Magiske byter (hex):
    50 4B 03 04
    ASCII:
    PK..
    Filendelser:
    .zip
    MIME-type:
    application/zip
    Offset:
    byte 0
  • RAR (v5)

    Magiske byter (hex):
    52 61 72 21 1A 07 01 00
    ASCII:
    Rar!....
    Filendelser:
    .rar
    MIME-type:
    application/vnd.rar
    Offset:
    byte 0
  • 7-Zip

    Magiske byter (hex):
    37 7A BC AF 27 1C
    ASCII:
    7z....
    Filendelser:
    .7z
    MIME-type:
    application/x-7z-compressed
    Offset:
    byte 0
  • DOCX (Office Open XML)

    Magiske byter (hex):
    50 4B 03 04
    ASCII:
    PK..
    Filendelser:
    .docx
    MIME-type:
    application/vnd.openxmlformats-officedocument.wordprocessingml.document
    Offset:
    byte 0
  • XLSX (Office Open XML)

    Magiske byter (hex):
    50 4B 03 04
    ASCII:
    PK..
    Filendelser:
    .xlsx
    MIME-type:
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    Offset:
    byte 0
  • APK (Android package)

    Magiske byter (hex):
    50 4B 03 04
    ASCII:
    PK..
    Filendelser:
    .apk
    MIME-type:
    application/vnd.android.package-archive
    Offset:
    byte 0
  • MP4 (ISO BMFF)

    Magiske byter (hex):
    00 00 00 20 66 74 79 70
    ASCII:
    ....ftyp
    Filendelser:
    .mp4, .m4v
    MIME-type:
    video/mp4
    Offset:
    byte 0
  • Windows PE / EXE

    Magiske byter (hex):
    4D 5A
    ASCII:
    MZ
    Filendelser:
    .exe, .dll, .sys
    MIME-type:
    application/vnd.microsoft.portable-executable
    Offset:
    byte 0
  • ISO 9660

    Magiske byter (hex):
    43 44 30 30 31
    ASCII:
    CD001
    Filendelser:
    .iso
    MIME-type:
    application/x-iso9660-image
    Offset:
    byte (sektor 16)
  • PDF

    De fire bytene staver %PDF. PDF-versjonen følger umiddelbart, f.eks. %PDF-1.7.

  • PNG

    Åtte byter inkludert PNG-linjeskiftmarkører (0D 0A 1A 0A) slik at overføringsfeil kan oppdages.

  • JPEG

    Start-of-Image-markør. Den fjerde byten skiller JFIF (E0) fra EXIF (E1).

  • GIF

    GIF89a er den moderne varianten. GIF87a (47 49 46 38 37 61) er den eldre stavemåten og er også gyldig.

  • BMP

    To byter. Lett å forfalske; kombiner med filstørrelseshodet ved offset 2 for å avklare.

  • ZIP

    Lokal filhode. Tomme arkiver bruker 50 4B 05 06 (end-of-central-directory) i stedet.

  • RAR (v5)

    RAR 5-signatur. Eldre RAR 1.5 til 4.x-filer bruker en 7-byte-signatur som slutter på 00.

  • 7-Zip

    Seks byter som staver 7z etterfulgt av tre magiske byter.

  • DOCX (Office Open XML)

    DOCX er en ZIP-container. Signaturen alene kan ikke skille en Word-dokument fra en generisk ZIP. Se på den indre [Content_Types].xml.

  • XLSX (Office Open XML)

    Samme forbehold som DOCX. Inspiser OOXML-manifestet for å bekrefte regnearkvarianten.

  • APK (Android package)

    APK er en ZIP-container med et Android-manifest inni. ZIP-signaturen alene er ikke tilstrekkelig bevis.

  • MP4 (ISO BMFF)

    ftyp-boksen ved offset 4 inneholder merkeidentifikatoren. Vanlige merker: isom, mp42, iso5.

  • Windows PE / EXE

    To byter (Mark Zbikowski). PE-hode-offsetet leses fra byte 0x3C; selve PE\0\0-magien sitter der.

  • ISO 9660

    ISO 9660 plasserer volumdeskriptoren ved sektor 16, så signaturen finnes ved byte 32769 (16 * 2048 + 1).

Hvordan en magisk-byte-sjekk fungerer

  1. 1

    Les de første bytene

    Åpne filen som en binær strøm og les de første 8 til 16 bytene. Det er nok til å gjenkjenne alle signaturene i tabellen ovenfor.

  2. 2

    Sammenlign mot kjente signaturer

    Match bytene mot en database med kjente formater. Flere formater kan dele et prefiks (hvert Office-dokument er en ZIP), så sjekken returnerer det mest spesifikke matchet.

  3. 3

    Kryssjekk med filendelsen

    Hvis det oppdagede formatet ikke samsvarer med det filendelsen hevder, er avgjørelsen MISMATCH. Hvis flere formater passer, AMBIGUOUS. Hvis ingenting passer, UNKNOWN.

Hvorfor betyr dette noe?

Å endre navn på en fil fra invoice.exe til invoice.pdf endrer ikke bytene. De første to bytene leser fortsatt 4D 5A. Det magiske tall-sjekken fanger det opp umiddelbart. Nyttig når et vedlegg ser legitimt ut, men filendelsen ble endret før sending.

Magisk-byte-sjekker fanger også det motsatte: en fil uten filendelse i det hele tatt, men med gyldige PNG-byter, er fortsatt en PNG, og bildeviseren din kan åpne den. Formatidentitet lever i bytene, ikke i filnavnet.

Ordliste

Vanlige spørsmål

Prøv det på din egen fil

Slipp en hvilken som helst fil. Sjekken kjører lokalt og rapporterer en avgjørelse på under et sekund. Bytene forlater aldri nettleseren din.

Åpne filtypesjekkeren