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"
PDF 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

Sì. Caricate il file e confrontatene i primi byte con la tabella delle firme più comuni: se l'estensione è `.txt` ma i byte iniziali sono FF D8 FF, è molto probabile che si tratti di un'immagine JPEG.

Perché rappresentare in esadecimale, tutto in una volta, un file di centinaia di megabyte o di alcuni gigabyte genererebbe una quantità enorme di elementi nella pagina, con il rischio di bloccare il navigatore. Limitandosi ai primi 64 KB si trattano in sicurezza gli usi principali, come l'esame delle intestazioni.

Se la visualizzazione e la modifica sono state ridotte ai primi 64 KB, anche il file scaricato conterrà soltanto quei 64 KB e i dati successivi andranno perduti. Per i file non superiori a 64 KB, invece, tutto ciò che non avete modificato resta identico all'originale.

No. Lettura, rappresentazione esadecimale, modifica e scaricamento avvengono interamente nel JavaScript del navigatore e il contenuto del file non viene mai trasmesso all'esterno.
Tool-kun

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.