Hexter

Cos'è un editor esadecimale (e quando ti serve davvero)

Qualcuno ti ha detto di “controllarlo in un editor esadecimale”, oppure hai cercato un visualizzatore esadecimale e sei finito qui senza essere del tutto sicuro di cosa sia. Va bene. Un editor esadecimale è un programma che ti mostra il contenuto grezzo di un file, byte per byte, invece di provare a interpretarlo come un documento, un’immagine o un foglio di calcolo. È quanto di più vicino tu possa arrivare a guardare esattamente ciò che è memorizzato su disco.

Perché proprio l’esadecimale

Un file, qualsiasi file, è semplicemente una sequenza di byte, e ogni byte è un numero da 0 a 255. Potresti mostrare quei numeri in decimale, ma da 0 a 255 servono fino a tre cifre e non si allineano in modo pulito. Potresti mostrarli in binario, ma un singolo byte è otto cifre di 1 e 0, difficili da scorrere con l’occhio. L’esadecimale (base 16, che usa le cifre 0-9 e le lettere A-F) è il compromesso: ogni byte sta in esattamente due caratteri, da 00 a FF, così una riga di byte si allinea in una griglia ordinata e facile da scorrere. È l’intera ragione per cui l’esadecimale è lo standard, non il decimale o il binario. È una scelta di leggibilità, non un requisito tecnico.

Cosa stai guardando davvero

Apri un file qualsiasi in un editor esadecimale e vedrai tre cose affiancate, per gli stessi dati:

Diagramma delle tre colonne di un editor esadecimale: la colonna dell'offset che mostra la posizione nel file, la griglia esadecimale che mostra ogni byte come due caratteri esadecimali, e la colonna di testo che mostra gli stessi byte interpretati come ASCII.
Gli stessi byte, mostrati in tre modi: dove sono, cosa sono, e come apparirebbero come testo.
  • Offset: quanto sei addentro nel file, di solito mostrato in esadecimale a sua volta, così puoi tornare a una posizione specifica più tardi.
  • Byte esadecimali: i dati veri e propri, due caratteri per byte, raggruppati in righe (comunemente 16 byte per riga).
  • Vista testo (ASCII): gli stessi byte reinterpretati come caratteri, per qualunque porzione del file sia testo leggibile. I byte non testuali di solito appaiono come un puntino segnaposto.

Quella terza colonna è il motivo per cui percorsi di file, etichette e stringhe di versione sono spesso visibili anche in file che sono per lo più dati binari: qualsiasi testo incorporato compare in quella colonna anche se il file nel suo complesso non è un file di testo.

Quando ne avresti davvero bisogno

La maggior parte delle persone passa tutta la vita senza aprire un editor esadecimale, ed è del tutto normale. Le situazioni in cui è davvero lo strumento giusto sono specifiche:

  • L’estensione di un file non corrisponde al suo contenuto reale. Qualcuno ha rinominato uno .zip in .doc, oppure non sei sicuro che un file .db sia davvero un database. I primi byte della maggior parte dei formati sono una firma distintiva (il PNG inizia con 89 50 4E 47, lo ZIP con 50 4B), e una vista esadecimale lo conferma in pochi secondi.
  • Un file è corrotto e vuoi sapere come. Download troncato, trasferimento difettoso, un’intestazione sovrascritta. Vedere i byte grezzi ti dice se il danno è all’inizio, alla fine, o sparso.
  • Stai debuggando qualcosa che legge o scrive dati binari, un formato di file di salvataggio, un file di configurazione, un protocollo di rete, e devi confermare esattamente quali byte vengono prodotti.
  • Vuoi verificare un valore specifico, come confermare che quattro byte rappresentino davvero la dimensione del file che ti aspetti, o controllare una marca temporale, senza fidarti di uno strumento a scatola chiusa che la interpreti correttamente.
  • Curiosità. Molte persone aprono un editor esadecimale una volta solo per vedere come appare davvero sotto la superficie un formato di file familiare. È un motivo del tutto legittimo.

Se nessuna di queste descrive ciò che stai facendo, probabilmente non te ne serve uno, e va bene così. È uno strumento specialistico per un tipo specifico di domanda.

Cosa rende un editor esadecimale buono, non solo funzionale

Una volta che te ne serve uno, gli strumenti fanno per lo più lo stesso lavoro di base: mostrare i byte, lasciarti scorrere, lasciarti cercare. Le differenze che contano riguardano la sicurezza e la chiarezza, non il numero grezzo di funzionalità. Hex Fiend è l’opzione gratuita e open source con cui la maggior parte degli utenti Mac finisce per impostazione predefinita, ed è davvero capace, in particolare con file molto grandi. Hexter adotta un approccio più circoscritto e prudente: ogni file si apre in sola lettura, quindi guardare qualcosa di sconosciuto non comporta alcun rischio, la modifica è un passaggio esplicito e reversibile anziché lo stato predefinito, e i formati di file comuni (PNG, ZIP, Mach-O, WAV, SQLite) vengono analizzati automaticamente nella loro struttura invece di lasciarti a decodificare le intestazioni a mano.

Quale dei due vuoi dipende da cosa stai facendo. Se stai confrontando byte per byte due file da diversi gigabyte, il diff di Hex Fiend è costruito per quella scala. Se devi solo confermare cos’è davvero un file, controllare una manciata di byte, o fare una piccola modifica attenta senza preoccuparti di rovinare per sbaglio l’originale, è la situazione per cui è costruito Hexter.