Spring til indhold
BouseMuttonBouseMutton

Hvad er et magisk tal?

Et magisk tal er den korte, faste byte-sekvens i begyndelsen af enhver fil. Det identificerer formatet, før nogen filendelse læses. Denne side dækker hvordan de virker, hvordan de mest almindelige signaturer ser ud, og hvorfor et magisk-byte-tjek slår et filnavn-tjek hver gang.

  • Forklaring på almindeligt sprog
  • 14 formater dækket
  • Bytes forlader aldrig din browser

Vigtige fakta

  • Hvad er det?

    Et magisk tal er en fast byte-sekvens (normalt 2 til 8 bytes) i begyndelsen af en fil, der identificerer formatet.

  • Hvor findes det?

    Næsten altid ved byte-offset 0. ISO 9660 disk-images er den velkendte undtagelse: deres CD001-signatur sidder ved offset 32769 (sektor 16).

  • Filendelse eller bytes?

    Bytes vinder. At omdøbe report.exe til report.pdf ændrer mærkatet, ikke indholdet. De magiske bytes læser stadig 4D 5A.

  • Hvad du får tilbage

    Vores filtype-tjekker rapporterer en af fire afgørelser: MATCH, MISMATCH, AMBIGUOUS eller UNKNOWN. Hver er et deterministisk svar om format-identitet, ikke sikkerhed.

  • Privatliv

    Det gratis enkeltfil-flow kører helt i din browser. Bytes forlader aldrig din enhed.

  • Sikkerhedsomfang

    Et magisk-byte-tjek identificerer format, ikke malware. Brug det som et første signal, ikke en virus-afgørelse.

Et magisk tal (også kaldet en magisk-byte-signatur eller filsignatur) er en kort, fast byte-sekvens skrevet helt i begyndelsen af en fil, der identificerer dens sande format. Operativsystemet bruger den før enhver filendelse. Filendelsen er bare et hint; det magiske tal er sandheden.

Magisk-byte-signaturreference

14 bredt anvendte signaturer hentet fra formaternes specifikationer. Hex-bytes er med store bogstaver, adskilt af mellemrum. ASCII-forhåndsvisninger erstatter ikke-printbare bytes med en prik.

  • PDF

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

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

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

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

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

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

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

    Magiske bytes (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 bytes (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 bytes (hex):
    50 4B 03 04
    ASCII:
    PK..
    Filendelser:
    .xlsx
    MIME-type:
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    Offset:
    byte 0
  • APK (Android package)

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

    Magiske bytes (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 bytes (hex):
    4D 5A
    ASCII:
    MZ
    Filendelser:
    .exe, .dll, .sys
    MIME-type:
    application/vnd.microsoft.portable-executable
    Offset:
    byte 0
  • ISO 9660

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

    De fire bytes staver %PDF. PDF-version følger umiddelbart efter, f.eks. %PDF-1.7.

  • PNG

    Otte bytes inklusive PNG-end-of-line-markører (0D 0A 1A 0A), så transmissionsfejl kan opdages.

  • JPEG

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

  • GIF

    GIF89a er den moderne variant. GIF87a (47 49 46 38 37 61) er den ældre stavemåde og er også gyldig.

  • BMP

    To bytes. Let at forfalske; par den med filstørrelses-headeren ved offset 2 for at skelne.

  • ZIP

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

  • RAR (v5)

    RAR 5-signatur. Ældre RAR 1.5 til 4.x-filer bruger en 7-byte signatur, der slutter med 00.

  • 7-Zip

    Seks bytes der staver 7z efterfulgt af tre magiske bytes.

  • DOCX (Office Open XML)

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

  • XLSX (Office Open XML)

    Samme forbehold som DOCX. Inspicér OOXML-manifestet for at bekræfte regnearksvarianten.

  • APK (Android package)

    APK er en ZIP-container med et Android-manifest indeni. ZIP-signatur alene er ikke tilstrækkeligt bevis.

  • MP4 (ISO BMFF)

    ftyp-boksen ved offset 4 indeholder mærke-identifikatoren. Almindelige mærker: isom, mp42, iso5.

  • Windows PE / EXE

    To bytes (Mark Zbikowski). PE-header-offset læses fra byte 0x3C; det faktiske PE\0\0-magiske sidder der.

  • ISO 9660

    ISO 9660 placerer volumen-deskriptoren ved sektor 16, så signaturen ligger ved byte 32769 (16 * 2048 + 1).

Sådan virker et magisk-byte-tjek

  1. 1

    Læs de første bytes

    Åbn filen som en binær strøm, og læs de første 8 til 16 bytes. Det er nok til at genkende enhver signatur i tabellen ovenfor.

  2. 2

    Sammenlign mod kendte signaturer

    Match bytes mod en database af kendte formater. Flere formater kan dele et præfiks (hvert Office-dokument er en ZIP), så tjekket returnerer det mest specifikke match.

  3. 3

    Krydstjek med filendelsen

    Hvis det opdagede format ikke matcher det, filendelsen påstår, er afgørelsen MISMATCH. Hvis flere formater passer, AMBIGUOUS. Hvis intet passer, UNKNOWN.

Hvorfor er dette vigtigt?

At omdøbe en fil fra invoice.exe til invoice.pdf ændrer ikke dens bytes. De første to bytes læser stadig 4D 5A. Det magiske-tal-tjek fanger det øjeblikkeligt. Nyttigt når en vedhæftet fil ser legitim ud, men filendelsen blev ændret før afsendelse.

Magiske-byte-tjek fanger også det modsatte: en fil uden filendelse overhovedet, men med gyldige PNG-bytes, er stadig en PNG, og din billed-fremviser kan åbne den. Format-identitet lever i bytes, ikke i filnavnet.

Ordliste

Ofte stillede spørgsmål

Prøv det på din egen fil

Slip enhver fil. Tjekket kører lokalt og rapporterer en afgørelse på under et sekund. Bytes forlader aldrig din browser.

Åbn filtype-tjekkeren