Hexter vs. Hex Fiend: qual o editor hexadecimal para Mac que deves usar
Se procuraste um editor hexadecimal no Mac, quase de certeza que deste de caras com o Hex Fiend. É gratuito, de código aberto, e é a recomendação predefinida em praticamente todas as listas de “melhor editor hexadecimal para Mac”. Também é software genuinamente bom. Este não é um artigo do género “porque é que a nossa app é melhor”. É um olhar honesto sobre onde o Hex Fiend continua a ser a escolha certa, e onde o Hexter faz as coisas de forma suficientemente diferente para que isso conte.
A versão curta
O Hex Fiend é uma ferramenta madura, gratuita e de código aberto, construída sobretudo em torno da potência de edição em bruto a uma escala enorme. O Hexter é uma app mais recente, construída em torno de uma prioridade diferente: dificultar que danifiques por acidente um ficheiro que estás apenas a tentar ver. Se já sabes exatamente o que estás a fazer e precisas de comparar ou editar confortavelmente ficheiros na ordem das dezenas de gigabytes, o Hex Fiend é hoje a ferramenta mais capaz para isso. Se queres um editor hexadecimal cauteloso por predefinição e que compreende de raiz as estruturas de ficheiro mais comuns, é para isso que o Hexter foi feito.
Funcionalidade a funcionalidade
| Hex Fiend | Hexter | |
|---|---|---|
| Preço | Gratuito, código aberto (licença BSD) | Ainda não lançado na Mac App Store |
| Ficheiros grandes | Aguenta ficheiros até cerca de 118 GB sem os carregar para a memória | Lê os bytes a pedido através de uma cache em blocos; ainda sem benchmarks à escala do Hex Fiend |
| Segurança na edição | Tem um Modo Só de Leitura explícito que podes ativar ou definir como predefinição, mas não é a predefinição de raiz | Abre todos os ficheiros só de leitura, sempre, sem qualquer preferência para mudar essa predefinição; a edição exige um interruptor explícito, e as edições ficam numa camada de patches reversível até guardares |
| Proteção contra substituição | Gravação padrão; sem passo de cópia de segurança integrado mencionado na documentação | Substituir o ficheiro original exige confirmação e oferece uma cópia de segurança automática (um único ficheiro .hexter-backup que é substituído em cada gravação seguinte, não um histórico com data e hora) |
| Comparação binária | Comparação com deteção de inserções/eliminações; nenhum limite de tamanho documentado na documentação ou nas notas de versão | Algoritmo de comparação a sério, mas atualmente limitado para comparações muito grandes, recorrendo a um resultado mais grosseiro acima desse tamanho |
| Interpretação de estruturas integrada | Traz uma biblioteca de modelos genuinamente grande (~17 categorias), mas navegas e aplicas um modelo manualmente | Estruturas PNG, ZIP, Mach-O, WAV e SQLite detetadas e interpretadas automaticamente ao abrir, sem modelo a escolher |
| Cálculo de hashes | Não é uma funcionalidade integrada | CRC32, Adler32, MD5, SHA-1, SHA-256 e SHA-512, calculados sobre o ficheiro em segundo plano |
| Strings, marcadores, deteção de anomalias | Não integrados | Todos integrados: extração de strings, marcadores com nome e notas, e uma análise a picos de entropia, sequências de bytes suspeitas e incompatibilidades de assinatura de formato |
| Interface | AppKit, funcional, com mais de uma década | SwiftUI nativo, modo escuro, feito para o macOS atual |
| Extensibilidade | Licença BSD de duas cláusulas, incorporável como framework noutras apps | Não concebido para ser incorporado; uma app autónoma |
| Modelos binários personalizados | Suportados através do seu sistema de modelos para formatos arbitrários | Ainda não suportados; os cinco interpretadores integrados cobrem formatos comuns, mas não há linguagem de modelos definida pelo utilizador |
Onde o Hex Fiend continua a ser a melhor escolha
Se trabalhas regularmente com ficheiros na ordem das dezenas de gigabytes, dumps de firmware, imagens de disco, grandes exportações de bases de dados, o modelo de memória do Hex Fiend e o seu historial a essa escala são difíceis de contestar. A sua ferramenta de comparação não tem limite de tamanho documentado, o que conta se o teu trabalho envolve comparar binários grandes. É também gratuito, o que já vale por si só, e se estás a construir uma ferramenta que precisa de incorporar um componente de edição hexadecimal, a sua licença BSD e o seu desenho como framework tornam isso possível de uma forma que uma app autónoma não permite.
O Hex Fiend também já traz uma biblioteca de modelos substancial, cerca de 17 categorias que cobrem executáveis, arquivos, áudio e muito mais, por isso também não parte do zero em formatos estruturados. Se precisas de um modelo personalizado para algo obscuro ou proprietário que ainda não esteja coberto, o sistema de modelos do Hex Fiend (e ferramentas como o 010 Editor ou o ImHex, que vão mais longe nesta direção) levam-te lá. A interpretação de estruturas do Hexter funciona bem para os cinco formatos que conhece, PNG, ZIP, Mach-O, WAV, SQLite, mas não te deixa definir os teus próprios.
Onde o Hexter faz algo diferente
A diferença central não é uma funcionalidade, é uma predefinição. O Hex Fiend tem de facto um Modo Só de Leitura, mas tens de saber que o deves ligar (ou defini-lo como predefinição nas preferências); de raiz, abre um ficheiro em modo editável. O Hexter abre todos os ficheiros só de leitura, sempre, sem qualquer definição para mudar isso. A edição é algo que ligas deliberadamente, com as alterações guardadas numa camada de patches que podes rever e reverter antes de qualquer coisa tocar no ficheiro original. Se passas mais tempo a olhar para ficheiros do que a editá-los, e a maioria das sessões de um editor hexadecimal é na verdade inspeção, não edição, essa predefinição conta mais do que aparenta. Significa que abrir um ficheiro desconhecido, a configuração de outra pessoa, uma imagem de firmware transferida, um ficheiro que estás a depurar, não acarreta qualquer risco por predefinição, sem teres de te lembrar de virar um interruptor primeiro.
A segunda diferença é o que acontece automaticamente quando abres um ficheiro que o Hexter reconhece. Em vez de uma parede plana de hex, obténs a estrutura real: as fronteiras dos chunks de um PNG com o seu tipo e CRC, os cabeçalhos de ficheiro locais de um arquivo ZIP, os load commands de um binário Mach-O, os campos de cabeçalho de um ficheiro SQLite, interpretados e apresentados ao lado dos bytes em bruto, sem qualquer configuração. Os modelos incluídos no Hex Fiend conseguem dar-te um detalhe semelhante, mas primeiro estás a navegar por uma lista de modelos e a aplicar um tu próprio.
Para além disso, o cálculo de hashes, a extração de strings e a deteção de anomalias (picos de entropia, incompatibilidades de assinatura, sequências de bytes suspeitas) estão integrados diretamente no Hexter, ao passo que no mundo do Hex Fiend isso costuma ser uma ferramenta à parte.
A recomendação honesta
Usa o Hex Fiend se já estás à vontade com editores hexadecimais, precisas de lidar com ficheiros muito grandes, ou queres uma ferramenta gratuita com um longo historial e uma comunidade ativa. Usa o Hexter se queres um editor hexadecimal que parte do princípio de que podes estar a olhar para um ficheiro em que ainda não confias totalmente, que por predefinição não lhe toca, e que te diz mais sobre os formatos comuns sem qualquer configuração. Nenhum está errado. Estão construídos em torno de pressupostos diferentes sobre quem os usa e porquê.
O Hexter está em desenvolvimento ativo. Se só de leitura por predefinição, interpretação de estruturas integrada e uma interface nativa moderna soam ao que queres de um editor hexadecimal, é essa a app para ficares de olho.