Editor binario ed esadecimale — esaminate e modificate i file in esadecimale
Basta trascinare un file per vederne il contenuto in esadecimale, byte per byte. Permette di accertare il vero formato del file grazie ai byte identificativi e di modificarne direttamente il contenuto binario e scaricarlo. I file non vengono trasmessi ad alcun servente.
Le firme di file, o numeri magici, più comuni
| Formato | Byte iniziali (esadecimale) | Scostamento | Note |
|---|---|---|---|
| PNG | 89 50 4E 47 0D 0A 1A 0A | 0 | File di immagine. Se tutti e otto i byte coincidono, si tratta certamente di un PNG |
| JPEG | FF D8 FF | 0 | File di immagine. Il quarto byte varia secondo la variante, JFIF, Exif e simili |
| GIF | 47 49 46 38 39 61 / 47 49 46 38 37 61 | 0 | La stringa ASCII "GIF89a" oppure "GIF87a" |
| 25 50 44 46 2D | 0 | La stringa ASCII "%PDF-", seguita subito dal numero di versione | |
| ZIP, docx, xlsx, jar | 50 4B 03 04 | 0 | Formato ZIP. I documenti Office Open XML e molti formati di compressione e archiviazione usano internamente ZIP |
| Eseguibili di Windows (EXE e DLL) | 4D 5A | 0 | La stringa ASCII "MZ", retaggio del formato eseguibile di MS-DOS, in testa all'intestazione del formato PE |
| Eseguibili ELF | 7F 45 4C 46 | 0 | Formato eseguibile e delle librerie condivise usato in Linux e in altri sistemi |
Consigli per l'uso dell'editor esadecimale
- Per smascherare un file a cui è stata cambiata l'estensione, confrontate i primi byte con la tabella qui sopra. L'estensione è una semplice dichiarazione, mentre i byte identificativi derivano dal formato stesso e costituiscono un indizio difficile da falsificare.
- Nella modalità di immissione diretta potete incollare e caricare senz'altro una sequenza di byte copiata da un altro strumento, separata da spazi o da ritorni a capo.
- Se durante la modifica fate clic sulla cella sbagliata, il tasto di uscita annulla la modifica di quella cella.
- Nella messa a punto dei protocolli binari, affiancare con questo strumento i valori attesi alla sequenza di byte realmente scambiata rende più facile individuare il punto di scostamento.
Domande frequenti
FF D8 FF, è molto probabile che si tratti di un'immagine JPEG.
A proposito — perché la vera natura di un file si scopre dai byte e non dall'estensione
L'estensione dei file di Windows è soltanto un suggerimento che dice al sistema operativo con quale programma aprire il documento: una stringa indipendente dal contenuto. Rinominare un `.txt` in `.jpg` non lo rende apribile come immagine e, viceversa, cancellare l'estensione di una vera immagine non ne altera i dati. Il carattere di semplice autodichiarazione di questo dato è sfruttato da tempo dai programmi malevoli che si travestono da immagini o documenti.
Molti formati, per contro, sono progettati per incorporare nei primi byte un identificativo caratteristico, detto byte identificativo o numero magico. Un PNG comincia sempre con gli otto byte 89 50 4E 47 0D 0A 1A 0A: per ciascun formato la specifica fissa una configurazione precisa, cosicché sistemi operativi e programmi possono accertare se un file sia davvero un PNG soltanto leggendone il contenuto. Anche il comando `file` dei sistemi Unix e il riconoscimento del tipo di supporto nei navigatori si fondano principalmente sul confronto di questi byte, non sull'estensione.
Nella progettazione dei byte identificativi si scorgono anche accorgimenti storici. Gli otto byte del PNG comprendono di proposito i codici di ritorno a capo 0D e 0A, per rilevare se il file, trasferito in modalità testuale, sia stato danneggiato dalla conversione dei fine riga. Non un semplice identificativo, dunque, ma un meccanismo che serve anche a scoprire le corruzioni avvenute durante il trasferimento: un dettaglio che dà la misura della profondità dei formati binari.