De vier bytes spellen %PDF. De PDF-versie volgt direct, bijv. %PDF-1.7.
Wat is een magisch getal?
Een magisch getal is de korte vaste bytereeks aan het begin van elk bestand. Het identificeert het formaat voordat een extensie wordt gelezen. Deze pagina behandelt hoe ze werken, hoe de meest voorkomende handtekeningen eruitzien en waarom een magic-byte-controle elke keer een bestandsnaamcontrole verslaat.
- Uitleg in gewoon Nederlands
- 14 formaten behandeld
- Bytes verlaten je browser nooit
Belangrijkste feiten
Wat is het?
Een magisch getal is een vaste bytereeks (meestal 2 tot 8 bytes) aan het begin van een bestand die het formaat identificeert.
Waar staat het?
Bijna altijd op byte-offset 0. ISO 9660-schijfimages zijn de bekende uitzondering: hun
CD001-handtekening staat op offset 32769 (sector 16).Extensie of bytes?
De bytes winnen. Het hernoemen van
report.exenaarreport.pdfverandert het label, niet de inhoud. De magische bytes lezen nog steeds4D 5A.Wat krijg je terug
Onze Bestandstype-controle rapporteert een van vier oordelen: KOMT OVEREEN, KOMT NIET OVEREEN, DUBBELZINNIG of ONBEKEND. Elk is een deterministisch antwoord over de identiteit van het formaat, niet over veiligheid.
Privacy
De gratis enkel-bestand-stroom loopt volledig in je browser. De bytes verlaten je apparaat nooit.
Veiligheidsscope
Een magic-byte-controle identificeert het formaat, niet malware. Gebruik het als eerste signaal, niet als virusoordeel.
Een magisch getal (ook wel magic-byte-handtekening of bestandshandtekening genoemd) is een korte, vaste bytereeks die helemaal aan het begin van een bestand wordt geschreven en het ware formaat identificeert. Het besturingssysteem gebruikt het voordat er een bestandsextensie wordt bekeken. De extensie is slechts een hint; het magische getal is de waarheid.
Magic-byte-handtekeningreferentie
14 veelgebruikte handtekeningen afkomstig uit de formaatspecificaties. Hex-bytes zijn hoofdletters, gescheiden door spaties. ASCII-voorbeelden vervangen niet-afdrukbare bytes door een punt.
PDF
- Magische bytes (hex):
25 50 44 46- ASCII:
%PDF- Extensies:
- MIME-type:
application/pdf- Offset:
- byte 0
PNG
- Magische bytes (hex):
89 50 4E 47 0D 0A 1A 0A- ASCII:
.PNG....- Extensies:
- .png
- MIME-type:
image/png- Offset:
- byte 0
JPEG
- Magische bytes (hex):
FF D8 FF- ASCII:
...- Extensies:
- .jpg, .jpeg
- MIME-type:
image/jpeg- Offset:
- byte 0
GIF
- Magische bytes (hex):
47 49 46 38 39 61- ASCII:
GIF89a- Extensies:
- .gif
- MIME-type:
image/gif- Offset:
- byte 0
BMP
- Magische bytes (hex):
42 4D- ASCII:
BM- Extensies:
- .bmp
- MIME-type:
image/bmp- Offset:
- byte 0
ZIP
- Magische bytes (hex):
50 4B 03 04- ASCII:
PK..- Extensies:
- .zip
- MIME-type:
application/zip- Offset:
- byte 0
RAR (v5)
- Magische bytes (hex):
52 61 72 21 1A 07 01 00- ASCII:
Rar!....- Extensies:
- .rar
- MIME-type:
application/vnd.rar- Offset:
- byte 0
7-Zip
- Magische bytes (hex):
37 7A BC AF 27 1C- ASCII:
7z....- Extensies:
- .7z
- MIME-type:
application/x-7z-compressed- Offset:
- byte 0
DOCX (Office Open XML)
- Magische bytes (hex):
50 4B 03 04- ASCII:
PK..- Extensies:
- .docx
- MIME-type:
application/vnd.openxmlformats-officedocument.wordprocessingml.document- Offset:
- byte 0
XLSX (Office Open XML)
- Magische bytes (hex):
50 4B 03 04- ASCII:
PK..- Extensies:
- .xlsx
- MIME-type:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet- Offset:
- byte 0
APK (Android package)
- Magische bytes (hex):
50 4B 03 04- ASCII:
PK..- Extensies:
- .apk
- MIME-type:
application/vnd.android.package-archive- Offset:
- byte 0
MP4 (ISO BMFF)
- Magische bytes (hex):
00 00 00 20 66 74 79 70- ASCII:
....ftyp- Extensies:
- .mp4, .m4v
- MIME-type:
video/mp4- Offset:
- byte 0
Windows PE / EXE
- Magische bytes (hex):
4D 5A- ASCII:
MZ- Extensies:
- .exe, .dll, .sys
- MIME-type:
application/vnd.microsoft.portable-executable- Offset:
- byte 0
ISO 9660
- Magische bytes (hex):
43 44 30 30 31- ASCII:
CD001- Extensies:
- .iso
- MIME-type:
application/x-iso9660-image- Offset:
- byte (sector 16)
PDF
PNG
Acht bytes inclusief de PNG-einderegelmarkeringen (
0D 0A 1A 0A) zodat transmissiefouten detecteerbaar zijn.JPEG
Start-of-Image-marker. De vierde byte onderscheidt JFIF (
E0) van EXIF (E1).GIF
GIF89a is de moderne variant. GIF87a (
47 49 46 38 37 61) is de oudere spelling en is ook geldig.BMP
Twee bytes. Makkelijk te spoofen; combineer met de bestandsgrootteheader op offset 2 om verwarring weg te nemen.
ZIP
Lokale bestandsheader. Lege archieven gebruiken in plaats daarvan
50 4B 05 06(end-of-central-directory).RAR (v5)
RAR 5-handtekening. Oudere RAR 1.5 tot 4.x-bestanden gebruiken een 7-byte-handtekening die eindigt op
00.7-Zip
Zes bytes die
7zspellen gevolgd door drie magische bytes.DOCX (Office Open XML)
DOCX is een ZIP-container. De handtekening alleen kan een Word-document niet onderscheiden van een algemene ZIP. Kijk naar de interne
[Content_Types].xml.XLSX (Office Open XML)
Hetzelfde voorbehoud als bij DOCX. Inspecteer het OOXML-manifest om de spreadsheetvariant te bevestigen.
APK (Android package)
APK is een ZIP-container met een Android-manifest erin. De ZIP-handtekening alleen is geen voldoende bewijs.
MP4 (ISO BMFF)
Het
ftyp-vak op offset 4 draagt de merkidentificatie. Veelvoorkomende merken:isom,mp42,iso5.Windows PE / EXE
Twee bytes (Mark Zbikowski). De PE-header-offset wordt gelezen vanaf byte 0x3C; daar zit het werkelijke
PE\0\0-magische getal.ISO 9660
ISO 9660 plaatst de volumebeschrijving op sector 16, dus de handtekening staat op byte 32769 (16 * 2048 + 1).
Hoe een magic-byte-controle werkt
- 1
Lees de eerste bytes
Open het bestand als binaire stroom en lees de eerste 8 tot 16 bytes. Dat is genoeg om elke handtekening in bovenstaande tabel te herkennen.
- 2
Vergelijk met bekende handtekeningen
Vergelijk de bytes met een database van bekende formaten. Meerdere formaten kunnen een prefix delen (elk Office-document is een ZIP), dus de controle retourneert de meest specifieke overeenkomst.
- 3
Kruiscontroleer met de bestandsextensie
Als het gedetecteerde formaat niet overeenkomt met wat de extensie beweert, is het oordeel KOMT NIET OVEREEN. Als meerdere formaten passen, DUBBELZINNIG. Als niets past, ONBEKEND.
Waarom is dit belangrijk?
Een bestand hernoemen van factuur.exe naar factuur.pdf verandert de bytes niet. De eerste twee bytes lezen nog steeds 4D 5A. De magic-number-controle vangt dat direct op. Handig wanneer een bijlage er legitiem uitziet maar de extensie voor het verzenden is gewijzigd.
Magic-byte-controles vangen ook het omgekeerde op: een bestand zonder enige extensie maar met geldige PNG-bytes is nog steeds een PNG en je viewer kan het openen. Formaatidentiteit zit in de bytes, niet in de bestandsnaam.
Woordenlijst
Verdieping per formaat
Elke spoke is een pagina gericht op één formaat: hoe je het herkent, veelvoorkomende patronen van niet-overeenkomst en een controle met één klik. Sleep je bestand eenmaal op een van deze en het oordeel is hetzelfde.
- .pdfPDF
Portable Document Format file
Magic bytes
25 50 44 46Is dit echt een PDF? - .exeEXE
Windows executable
Magic bytes
4D 5AIs dit echt een EXE? - .zipZIP
compressed archive
Magic bytes
50 4B 03 04Is dit echt een ZIP? - .docxDOCX
Microsoft Word document
Magic bytes
50 4B 03 04Is dit echt een DOCX? - .xlsxXLSX
Microsoft Excel spreadsheet
Magic bytes
50 4B 03 04Is dit echt een XLSX? - .pngPNG
Portable Network Graphics image
Magic bytes
89 50 4E 47 0D 0A 1A 0AIs dit echt een PNG? - .jpgJPG
JPEG photograph
Magic bytes
FF D8 FFIs dit echt een JPG? - .mp4MP4
MPEG-4 video
Magic bytes
00 00 00 20 66 74 79 70Is dit echt een MP4? - .apkAPK
Android package
Magic bytes
50 4B 03 04Is dit echt een APK? - .isoISO
optical disc image
Magic bytes
43 44 30 30 31Is dit echt een ISO?
Veelgestelde vragen
Probeer het op je eigen bestand
Sleep een willekeurig bestand. De controle loopt lokaal en rapporteert een oordeel binnen een seconde. De bytes verlaten je browser nooit.
Bestandstype-controle openenGerelateerde lectuur
Pijler
Bestandsextensie versus bestandstype
Een bestandsextensie is slechts een label. Het bestandstype is wat de bytes daadwerkelijk zeggen. Hier is hoe de twee uiteenlopen en hoe je het verschil ziet.
Lezen →Pijler
Is mijn bestand veilig?
Een magic-byte-controle identificeert het bestandsformaat. Het kan je niet vertellen of het bestand kwaadaardig is. Hier is wat het wel dekt en waar je nog steeds een echte malwarescanner nodig hebt.
Lezen →Tool
Bestandstype-controle
Sleep een willekeurig bestand. Levert binnen een seconde een van vier oordelen op. Bytes verlaten je browser niet bij de gratis stroom.
Probeer het →