Hexter vs Hex Fiend: quale editor esadecimale per Mac usare
Se hai cercato un editor esadecimale su Mac, quasi sicuramente ti sei imbattuto in Hex Fiend. È gratuito, open source, ed è il consiglio predefinito in quasi ogni elenco dei “migliori editor esadecimali per Mac”. È anche software davvero valido. Questo non è un articolo del tipo “perché la nostra app è migliore”. È uno sguardo onesto su dove Hex Fiend è ancora la scelta giusta, e dove Hexter fa le cose in modo abbastanza diverso da contare.
In breve
Hex Fiend è uno strumento maturo, gratuito e open source, costruito principalmente attorno alla pura potenza di editing su scala enorme. Hexter è un’app più recente costruita attorno a una priorità diversa: rendere difficile danneggiare per sbaglio un file che stai solo cercando di guardare. Se sai già esattamente cosa stai facendo e devi confrontare o modificare comodamente file da decine di gigabyte, oggi Hex Fiend è lo strumento più capace per questo. Se vuoi un editor esadecimale che sia prudente per impostazione predefinita e che capisca subito le strutture di file più comuni, è per questo che è stato costruito Hexter.
Funzionalità per funzionalità
| Hex Fiend | Hexter | |
|---|---|---|
| Prezzo | Gratuito, open source (licenza BSD) | Non ancora pubblicato sul Mac App Store |
| Gestione di file grandi | Gestisce file fino a circa 118 GB senza caricarli in memoria | Legge i byte su richiesta tramite una cache a blocchi; non ancora testato su benchmark alla scala di Hex Fiend |
| Sicurezza delle modifiche | Ha una modalità Sola lettura esplicita che puoi attivare o impostare come predefinita, ma non è di per sé l’impostazione predefinita di serie | Apre ogni file in sola lettura, sempre, senza alcuna preferenza per cambiare quel comportamento; la modifica richiede un interruttore esplicito, e le modifiche restano in un livello di patch reversibile finché non salvi |
| Protezione dalla sovrascrittura | Salvataggio standard; nella documentazione non è indicato alcun passaggio di backup integrato | Sovrascrivere il file originale richiede una conferma e offre una copia di backup automatica (un unico file .hexter-backup che viene sostituito a ogni salvataggio successivo, non una cronologia con marca temporale) |
| Diff binario | Diff che tiene conto di inserimenti/eliminazioni; nella documentazione o nelle note di rilascio non è documentato alcun limite di dimensione | Vero algoritmo di diff, ma attualmente limitato per confronti molto grandi, con ripiego su un risultato più grossolano oltre quella soglia |
| Parsing delle strutture integrato | Include una libreria di template davvero ampia (~17 categorie), ma sfogli e applichi un template manualmente | Le strutture di PNG, ZIP, Mach-O, WAV e SQLite vengono rilevate e analizzate automaticamente all’apertura, senza template da scegliere |
| Hashing | Non è una funzionalità integrata | CRC32, Adler32, MD5, SHA-1, SHA-256 e SHA-512, calcolati sul file in background |
| Stringhe, segnalibri, rilevamento anomalie | Non integrati | Tutto integrato: estrazione delle stringhe, segnalibri con nome e note, e una scansione per picchi di entropia, sequenze di byte sospette e discordanze nella firma del formato |
| Interfaccia | AppKit, funzionale, risale a oltre un decennio fa | SwiftUI nativo, modalità scura, costruito per l’attuale macOS |
| Estensibilità | Licenza BSD a due clausole, incorporabile come framework in altre app | Non progettato per essere incorporato; un’app autonoma |
| Template binari personalizzati | Supportati tramite il suo sistema di template per formati arbitrari | Non ancora supportati; i cinque parser integrati coprono i formati comuni ma non esiste un linguaggio di template definito dall’utente |
Dove Hex Fiend è ancora la scelta migliore
Se lavori regolarmente con file da decine di gigabyte, dump di firmware, immagini disco, grandi export di database, il modello di memoria di Hex Fiend e il suo storico a quella scala sono difficili da contestare. Il suo strumento di diff non ha alcun limite di dimensione documentato, cosa che conta se il tuo lavoro comporta il confronto di grandi binari. È anche gratuito, cosa che vale qualcosa di per sé, e se stai costruendo uno strumento che deve incorporare un componente di editing esadecimale, la sua licenza BSD e il suo design a framework lo rendono possibile in un modo che un’app autonoma non consente.
Hex Fiend include già anche una libreria di template consistente, circa 17 categorie che coprono eseguibili, archivi, audio e altro, quindi non parte da zero nemmeno sui formati strutturati. Se ti serve un template personalizzato per qualcosa di oscuro o proprietario che non è già coperto, il sistema di template di Hex Fiend (e strumenti come 010 Editor o ImHex, che vanno più a fondo in questa direzione) ti porteranno dove vuoi. Il parsing delle strutture di Hexter funziona bene per i cinque formati che conosce, PNG, ZIP, Mach-O, WAV, SQLite, ma non ti permette di definirne di tuoi.
Dove Hexter fa qualcosa di diverso
La differenza fondamentale non è una funzionalità, è un comportamento predefinito. Hex Fiend ha effettivamente una modalità Sola lettura, ma devi sapere di doverla attivare (o impostarla come predefinita nelle preferenze); di serie, apre un file in una modalità modificabile. Hexter apre ogni file in sola lettura, sempre, senza alcuna impostazione per cambiarlo. La modifica è qualcosa che attivi deliberatamente, con le modifiche tenute in un livello di patch che puoi rivedere e annullare prima che qualcosa tocchi il file originale. Se passi più tempo a guardare i file che a modificarli, e la maggior parte delle sessioni con un editor esadecimale è in realtà ispezione, non modifica, quel comportamento predefinito conta più di quanto sembri. Significa che aprire un file sconosciuto, la configurazione di qualcun altro, un’immagine di firmware scaricata, un file che stai debuggando, non comporta alcun rischio per impostazione predefinita, senza che tu debba ricordarti di premere prima un interruttore.
La seconda differenza è cosa succede automaticamente quando apri un file che Hexter riconosce. Invece di un muro piatto di esadecimale, ottieni la struttura reale: i confini dei chunk PNG con il loro tipo e CRC, le intestazioni dei file locali di un archivio ZIP, i load command di un binario Mach-O, i campi dell’intestazione di un file SQLite, analizzati e disposti accanto ai byte grezzi, senza alcuna configurazione. I template inclusi in Hex Fiend possono darti dettagli simili, ma prima devi sfogliare un elenco di template e applicarne uno tu stesso.
Oltre a questo, hashing, estrazione delle stringhe e rilevamento delle anomalie (picchi di entropia, discordanze nelle firme, sequenze di byte sospette) sono integrati direttamente in Hexter, mentre nel mondo di Hex Fiend di solito sono uno strumento separato.
Il consiglio onesto
Usa Hex Fiend se hai già dimestichezza con gli editor esadecimali, se devi gestire file molto grandi, o se vuoi uno strumento gratuito con un lungo storico e una community attiva. Usa Hexter se vuoi un editor esadecimale che presume che tu possa stare guardando un file di cui non ti fidi ancora del tutto, che per impostazione predefinita non lo tocca, e che ti dice di più sui formati comuni senza alcuna configurazione. Nessuno dei due è sbagliato. Sono costruiti attorno a presupposti diversi su chi li usa e perché.
Hexter è in sviluppo attivo. Se sola lettura predefinita, parsing delle strutture integrato e un’interfaccia nativa moderna sono ciò che vuoi da un editor esadecimale, è l’app da tenere d’occhio.