I quattro byte compongono %PDF. La versione PDF segue immediatamente, es. %PDF-1.7.
Cos'è un magic number?
Un magic number è la breve sequenza di byte fissa all'inizio di ogni file. Identifica il formato prima che venga letta qualsiasi estensione. Questa pagina copre come funzionano, come appaiono le firme più comuni e perché un controllo magic-byte batte sempre un controllo sul nome del file.
- Spiegazione in italiano semplice
- 14 formati trattati
- I byte non lasciano mai il tuo browser
Fatti chiave
Cos'è?
Un magic number è una sequenza di byte fissa (di solito da 2 a 8 byte) all'inizio di un file che identifica il formato.
Dove si trova?
Quasi sempre all'offset byte 0. Le immagini disco ISO 9660 sono l'eccezione nota: la loro firma
CD001si trova all'offset 32769 (settore 16).Estensione o byte?
Vincono i byte. Rinominare
report.exeinreport.pdfcambia l'etichetta, non il contenuto. I magic byte leggono ancora4D 5A.Cosa ricevi
Il nostro verificatore di tipo file riporta uno dei quattro verdetti: MATCH, MISMATCH, AMBIGUOUS o UNKNOWN. Ciascuno è una risposta deterministica sull'identità del formato, non sulla sicurezza.
Privacy
Il flusso gratuito a singolo file funziona interamente nel tuo browser. I byte non lasciano mai il tuo dispositivo.
Ambito di sicurezza
Un controllo magic-byte identifica il formato, non il malware. Usalo come primo segnale, non come verdetto antivirus.
Un magic number (chiamato anche firma magic-byte o firma del file) è una breve sequenza di byte fissa scritta proprio all'inizio di un file che ne identifica il vero formato. Il sistema operativo lo usa prima di qualsiasi estensione del file. L'estensione è solo un suggerimento; il magic number è la verità.
Riferimento delle firme magic-byte
14 firme ampiamente utilizzate, tratte dalle specifiche dei formati. I byte hex sono in maiuscolo, separati da spazi. Le anteprime ASCII sostituiscono i byte non stampabili con un punto.
PDF
- Magic byte (hex):
25 50 44 46- ASCII:
%PDF- Estensioni:
- Tipo MIME:
application/pdf- Offset:
- byte 0
PNG
- Magic byte (hex):
89 50 4E 47 0D 0A 1A 0A- ASCII:
.PNG....- Estensioni:
- .png
- Tipo MIME:
image/png- Offset:
- byte 0
JPEG
- Magic byte (hex):
FF D8 FF- ASCII:
...- Estensioni:
- .jpg, .jpeg
- Tipo MIME:
image/jpeg- Offset:
- byte 0
GIF
- Magic byte (hex):
47 49 46 38 39 61- ASCII:
GIF89a- Estensioni:
- .gif
- Tipo MIME:
image/gif- Offset:
- byte 0
BMP
- Magic byte (hex):
42 4D- ASCII:
BM- Estensioni:
- .bmp
- Tipo MIME:
image/bmp- Offset:
- byte 0
ZIP
- Magic byte (hex):
50 4B 03 04- ASCII:
PK..- Estensioni:
- .zip
- Tipo MIME:
application/zip- Offset:
- byte 0
RAR (v5)
- Magic byte (hex):
52 61 72 21 1A 07 01 00- ASCII:
Rar!....- Estensioni:
- .rar
- Tipo MIME:
application/vnd.rar- Offset:
- byte 0
7-Zip
- Magic byte (hex):
37 7A BC AF 27 1C- ASCII:
7z....- Estensioni:
- .7z
- Tipo MIME:
application/x-7z-compressed- Offset:
- byte 0
DOCX (Office Open XML)
- Magic byte (hex):
50 4B 03 04- ASCII:
PK..- Estensioni:
- .docx
- Tipo MIME:
application/vnd.openxmlformats-officedocument.wordprocessingml.document- Offset:
- byte 0
XLSX (Office Open XML)
- Magic byte (hex):
50 4B 03 04- ASCII:
PK..- Estensioni:
- .xlsx
- Tipo MIME:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet- Offset:
- byte 0
APK (Android package)
- Magic byte (hex):
50 4B 03 04- ASCII:
PK..- Estensioni:
- .apk
- Tipo MIME:
application/vnd.android.package-archive- Offset:
- byte 0
MP4 (ISO BMFF)
- Magic byte (hex):
00 00 00 20 66 74 79 70- ASCII:
....ftyp- Estensioni:
- .mp4, .m4v
- Tipo MIME:
video/mp4- Offset:
- byte 0
Windows PE / EXE
- Magic byte (hex):
4D 5A- ASCII:
MZ- Estensioni:
- .exe, .dll, .sys
- Tipo MIME:
application/vnd.microsoft.portable-executable- Offset:
- byte 0
ISO 9660
- Magic byte (hex):
43 44 30 30 31- ASCII:
CD001- Estensioni:
- .iso
- Tipo MIME:
application/x-iso9660-image- Offset:
- byte (settore 16)
PDF
PNG
Otto byte inclusi i marcatori di fine riga PNG (
0D 0A 1A 0A) così gli errori di trasmissione sono rilevabili.JPEG
Marcatore di inizio immagine. Il quarto byte distingue JFIF (
E0) da EXIF (E1).GIF
GIF89a è la variante moderna. GIF87a (
47 49 46 38 37 61) è la grafia legacy ed è anch'essa valida.BMP
Due byte. Facile da contraffare; abbinalo all'intestazione della dimensione del file all'offset 2 per disambiguare.
ZIP
Intestazione di file locale. Gli archivi vuoti usano invece
50 4B 05 06(fine della directory centrale).RAR (v5)
Firma RAR 5. I file RAR più vecchi da 1.5 a 4.x usano una firma di 7 byte che termina con
00.7-Zip
Sei byte che compongono
7zseguiti da tre magic byte.DOCX (Office Open XML)
DOCX è un contenitore ZIP. La firma da sola non può distinguere un documento Word da un ZIP generico. Guarda il
[Content_Types].xmlinterno.XLSX (Office Open XML)
Stesso avvertimento di DOCX. Ispeziona il manifesto OOXML per confermare la variante foglio di calcolo.
APK (Android package)
APK è un contenitore ZIP con un manifesto Android al suo interno. La sola firma ZIP non è prova sufficiente.
MP4 (ISO BMFF)
La casella
ftypall'offset 4 porta l'identificatore del brand. Brand comuni:isom,mp42,iso5.Windows PE / EXE
Due byte (Mark Zbikowski). L'offset dell'intestazione PE viene letto dal byte 0x3C; il magic
PE\0\0effettivo si trova lì.ISO 9660
ISO 9660 colloca il descrittore di volume nel settore 16, quindi la firma si trova al byte 32769 (16 * 2048 + 1).
Come funziona un controllo magic-byte
- 1
Leggi i primi byte
Apri il file come flusso binario e leggi i primi 8-16 byte. È sufficiente per riconoscere ogni firma della tabella sopra.
- 2
Confronta con le firme note
Confronta i byte con un database di formati noti. Più formati possono condividere un prefisso (ogni documento Office è uno ZIP), quindi il controllo restituisce la corrispondenza più specifica.
- 3
Verifica incrociata con l'estensione del file
Se il formato rilevato non corrisponde a quello che l'estensione dichiara, il verdetto è MISMATCH. Se più formati corrispondono, AMBIGUOUS. Se nulla corrisponde, UNKNOWN.
Perché è importante?
Rinominare un file da invoice.exe a invoice.pdf non cambia i suoi byte. I primi due byte leggono ancora 4D 5A. Il controllo magic-number lo cattura immediatamente. Utile quando un allegato sembra legittimo ma l'estensione è stata cambiata prima dell'invio.
I controlli magic-byte catturano anche l'opposto: un file senza alcuna estensione ma con byte PNG validi è comunque un PNG e il tuo visualizzatore di immagini può aprirlo. L'identità del formato vive nei byte, non nel nome del file.
Glossario
Approfondimenti per formato
Ogni voce è una pagina focalizzata su un singolo formato: come riconoscerlo, schemi comuni di mancata corrispondenza e un controllo con un clic. Trascina il tuo file una volta su qualsiasi di queste e il verdetto è lo stesso.
- .pdfPDF
Portable Document Format file
Magic bytes
25 50 44 46È davvero un PDF? - .exeEXE
Windows executable
Magic bytes
4D 5AÈ davvero un EXE? - .zipZIP
compressed archive
Magic bytes
50 4B 03 04È davvero un ZIP? - .docxDOCX
Microsoft Word document
Magic bytes
50 4B 03 04È davvero un DOCX? - .xlsxXLSX
Microsoft Excel spreadsheet
Magic bytes
50 4B 03 04È davvero un XLSX? - .pngPNG
Portable Network Graphics image
Magic bytes
89 50 4E 47 0D 0A 1A 0AÈ davvero un PNG? - .jpgJPG
JPEG photograph
Magic bytes
FF D8 FFÈ davvero un JPG? - .mp4MP4
MPEG-4 video
Magic bytes
00 00 00 20 66 74 79 70È davvero un MP4? - .apkAPK
Android package
Magic bytes
50 4B 03 04È davvero un APK? - .isoISO
optical disc image
Magic bytes
43 44 30 30 31È davvero un ISO?
Domande frequenti
Provalo sul tuo file
Trascina qualsiasi file. Il controllo viene eseguito localmente e riporta un verdetto in meno di un secondo. I byte non lasciano mai il tuo browser.
Apri il verificatore di tipo fileLetture correlate
Pilastro
Estensione del file contro tipo di file
Un'estensione di file è solo un'etichetta. Il tipo di file è quello che dicono davvero i byte. Ecco come i due divergono e come distinguerli.
Leggi →Pilastro
Il mio file è sicuro?
Un controllo magic-byte identifica il formato del file. Non può dirti se il file è malevolo. Ecco cosa copre e dove ti serve ancora un vero scanner antimalware.
Leggi →Strumento
Verificatore di tipi di file
Trascina un file qualsiasi. Restituisce uno dei quattro verdetti in meno di un secondo. I byte non lasciano mai il tuo browser nel flusso gratuito.
Provalo →