Rilevatore di tipo di file — decidono i byte, non il nome
Rilevatore di tipo di file
L'estensione di un file è solo un'etichetta — rinominare virus.exe in foto.jpg non cambia nulla al suo interno. Questa pagina legge i primi byte di ogni file caricato e li confronta con più di 60 firme magiche reali: immagini, documenti, archivi, audio/video, font, eseguibili, database e chiavi. Ottiene il tipo rilevato, il tipo MIME, le estensioni che quel tipo usa normalmente, un avviso quando l'estensione contraddice il contenuto, e dove il formato lo riporta (dimensioni dell'immagine, versione del PDF, brand MP4). Tutto viene ispezionato localmente nel suo browser.
Scelga i file
Trascini qui i file, oppure faccia clic per sceglierli Uno o più file. Vengono letti solo i primi 512 byte di ciascuno; i file non lasciano mai questo computer.
Nessun file selezionato.
Risultati
La tabella di rilevamento compare qui dopo aver scelto i file e premuto Rileva.
Che cosa significa «corrispondenza»:coerente — l'estensione corrisponde al formato rilevato; non corrispondente — il contenuto è un formato diverso da quello dichiarato dall'estensione (un file rinominato, o peggio); «nessuna firma» — i primi byte non corrispondono a nessuna firma nota, il che è normale per testo semplice, CSV e la maggior parte dei formati di dati che semplicemente non hanno un'intestazione. Privacy: i file vengono letti con il FileReader del browser; nulla viene caricato.
Che cos'è una firma di file?
Quasi ogni formato binario inizia con una sequenza fissa di byte — il numero magico — collocata lì perché un programma possa riconoscere i propri file senza fidarsi del nome. Un PNG inizia sempre con gli otto byte 89 50 4E 47 0D 0A 1A 0A («\x89PNG\r\n\x1a\n»), un PDF con il testo ASCII %PDF, uno ZIP con PK\x03\x04 (le iniziali di Phil Katz, che ha progettato il formato). I sistemi operativi per lo più ignorano questi byte e guardano invece l'estensione — ed è proprio per questo che un file rinominato non «si apre bene» da nessuna parte, e per cui gli strumenti di sicurezza analizzano il contenuto.
Primi byte famosi
Byte
Formato
Nota
89 50 4E 47 0D 0A 1A 0A
Immagine PNG
il \r\n protegge dalla corruzione delle terminazioni di riga
FF D8 FF
Immagine JPEG
ogni frame JPEG inizia con un marcatore SOI
25 50 44 46 2D
Documento PDF
«%PDF-1.7» — segue la versione
50 4B 03 04
Archivio ZIP
docx/xlsx/odt/epub sono ZIP con un'estensione diversa
D0 CF 11 E0
Office legacy
doc/xls/ppt/msi — il file composto OLE2
4D 5A
EXE di Windows
«MZ», dalle iniziali di Mark Zbikowski di Microsoft
7F 45 4C 46
ELF di Linux
\x7fELF — programmi e librerie condivise
1A 45 DF A3
Matroska/WebM
inizio del contenitore EBML
75 73 74 61 72all'offset 257
Archivio TAR
la firma è nascosta in profondità nell'intestazione
Come decide il rilevatore
I primi 512 byte di ogni file vengono confrontati con una tabella di firme in ordine di specificità: i brand dei contenitori (RIFF…WAVE contro RIFF…AVI contro RIFF…WEBP, i box di brand ISO all'offset 8) vengono controllati prima dei loro contenitori generici, e i formati basati su ZIP (EPUB, ODF, OOXML) prima dello ZIP semplice. Dove un formato porta metadati autodescrittivi, la pagina scava un livello più in profondità: le dimensioni di PNG/GIF/BMP/JPEG/WebP vengono lette dalle loro intestazioni, la versione del PDF dal byte 5, il brand MP4 e la versione della classe Java dai loro offset standard. I file che non corrispondono a nulla passano a un'euristica testuale (BOM, <?xml, <html, shebang, rapporto di caratteri stampabili) prima di essere classificati come sconosciuti.
Errori comuni
«Dice ZIP ma il file è un .docx» — è corretto: un .docx è un archivio ZIP il cui primo elemento è [Content_Types].xml; il rilevatore riconosce quel caso e riporta specificamente Office Open XML. «Dice nessuna firma ma il file si apre bene» — CSV, la maggior parte del codice sorgente e innumerevoli formati scientifici non hanno affatto byte magici; «nessuna firma» non è un'accusa. «Può dirmi se il file è sicuro?» — no. L'analisi del contenuto dice che cosa è un file, non che cosa fa; un EXE è un EXE che sia un installer o un malware.
Domande frequenti
Perché solo 512 byte? — ogni firma supportata vive entro i primi 512 byte (la più profonda è ustar del TAR all'offset 257); leggerne di più rallenterebbe i grandi lotti senza alcun vantaggio. Rileva la durata dei video? — no, solo il contenitore e il suo brand; la durata richiede l'analisi dell'intero indice, ed è compito di un lettore. Più file alla volta? — sì, trascini un'intera selezione; ogni riga viene rilevata in modo indipendente. Pagina correlata: per il percorso inverso — dall’estensione al tipo MIME — usi la Ricerca tipi MIME; per calcolare l’hash degli stessi file usi l’Hash di file in batch.