Hexter

Hexter vs. Hex Fiend: qual editor hexadecimal para Mac usar

Se você procurou um editor hexadecimal no Mac, quase com certeza esbarrou no Hex Fiend. Ele é gratuito, open source, e é a recomendação padrão em quase toda lista de “melhores editores hexadecimais para Mac”. Também é um software genuinamente bom. Este não é um post do tipo “por que nosso app é melhor”. É um olhar honesto sobre onde o Hex Fiend ainda é a escolha certa, e onde o Hexter faz as coisas de um jeito diferente o suficiente para importar.

A versão curta

O Hex Fiend é uma ferramenta madura, gratuita e open source, construída principalmente em torno de puro poder de edição em escala massiva. O Hexter é um app mais novo, construído em torno de uma prioridade diferente: dificultar que você danifique por acidente um arquivo que só quer examinar. Se você já sabe exatamente o que está fazendo e precisa comparar ou editar com conforto arquivos na casa das dezenas de gigabytes, o Hex Fiend é a ferramenta mais capaz para isso hoje. Se você quer um editor hexadecimal cauteloso por padrão e que entende estruturas de arquivos comuns de imediato, é para isso que o Hexter foi feito.

Recurso a recurso

Hex Fiend Hexter
Preço Gratuito, open source (licença BSD) Ainda não lançado na Mac App Store
Arquivos grandes Lida com arquivos de até cerca de 118 GB sem carregá-los na memória Lê bytes sob demanda por um cache de blocos; ainda sem benchmarks na escala do Hex Fiend
Segurança na edição Tem um Modo Somente Leitura explícito que você pode ativar ou definir como padrão, mas isso não é o padrão de fábrica em si Abre todo arquivo em modo somente leitura, sempre, sem preferência para mudar esse padrão; editar exige uma alternância explícita, e as edições ficam em uma camada de patches reversível até você salvar
Proteção contra sobrescrita Salvamento padrão; nenhuma etapa de backup embutida mencionada na documentação Sobrescrever o arquivo original exige confirmação e oferece uma cópia de backup automática (um único arquivo .hexter-backup que é substituído a cada salvamento seguinte, não um histórico com data e hora)
Comparação binária Comparação que reconhece inserção/remoção; nenhum limite de tamanho documentado na documentação ou nas notas de versão Algoritmo de comparação real, mas atualmente limitado para comparações muito grandes, recorrendo a um resultado mais grosseiro acima desse tamanho
Análise de estruturas embutida Traz uma biblioteca de templates realmente extensa (cerca de 17 categorias), mas você navega e aplica um template manualmente Estruturas de PNG, ZIP, Mach-O, WAV e SQLite detectadas e analisadas automaticamente ao abrir, sem template para escolher
Cálculo de hashes Não é um recurso embutido CRC32, Adler32, MD5, SHA-1, SHA-256 e SHA-512, calculados sobre o arquivo em segundo plano
Strings, favoritos, detecção de anomalias Não embutidos Todos embutidos: extração de strings, favoritos nomeados com notas e uma varredura em busca de picos de entropia, sequências de bytes suspeitas e assinaturas de formato incompatíveis
Interface AppKit, funcional, com mais de uma década de existência SwiftUI nativo, modo escuro, feito para o macOS atual
Extensibilidade Licença BSD de duas cláusulas, incorporável como framework em outros apps Não foi projetado para ser incorporado; é um app autônomo
Templates binários personalizados Suportados via seu sistema de templates para formatos arbitrários Ainda não suportados; os cinco parsers embutidos cobrem formatos comuns, mas não há uma linguagem de template definida pelo usuário

Onde o Hex Fiend ainda é a melhor escolha

Se você trabalha com frequência com arquivos na casa das dezenas de gigabytes, dumps de firmware, imagens de disco, exportações grandes de banco de dados, o modelo de memória do Hex Fiend e seu histórico nessa escala são difíceis de contestar. Sua ferramenta de comparação não tem limite de tamanho documentado, o que importa se o seu trabalho envolve comparar binários grandes. Ele também é gratuito, o que já vale algo por si só, e, se você está construindo uma ferramenta que precisa incorporar um componente de edição hexadecimal, sua licença BSD e seu design como framework tornam isso possível de um jeito que um app autônomo não permite.

O Hex Fiend também já traz uma biblioteca de templates substancial, cerca de 17 categorias cobrindo executáveis, arquivos compactados, áudio e mais, então ele também não começa do zero em formatos estruturados. Se você precisa de um template personalizado para algo obscuro ou proprietário que ainda não esteja coberto, o sistema de templates do Hex Fiend (e ferramentas como o 010 Editor ou o ImHex, que vão além nessa direção) vão te levar lá. A análise de estruturas do Hexter funciona bem para os cinco formatos que ele conhece, PNG, ZIP, Mach-O, WAV, SQLite, mas não deixa você definir os seus próprios.

Onde o Hexter faz algo diferente

A diferença central não é um recurso, é um padrão. O Hex Fiend tem sim um Modo Somente Leitura, mas você precisa saber ativá-lo (ou defini-lo como padrão nas preferências); de fábrica, ele abre um arquivo em modo editável. O Hexter abre todo arquivo em modo somente leitura, sempre, sem nenhuma configuração para mudar isso. Editar é algo que você ativa de propósito, com as alterações mantidas em uma camada de patches que você pode revisar e reverter antes que qualquer coisa toque no arquivo original. Se você passa mais tempo examinando arquivos do que editando, e a maioria das sessões de editor hexadecimal é na verdade inspeção, não edição, esse padrão importa mais do que parece. Significa que abrir um arquivo desconhecido, a configuração de outra pessoa, uma imagem de firmware baixada, um arquivo que você está depurando, não traz risco algum por padrão, sem que você precise lembrar de acionar um botão primeiro.

A segunda diferença é o que acontece automaticamente quando você abre um arquivo que o Hexter reconhece. Em vez de uma parede plana de hex, você vê a estrutura de verdade: os limites dos chunks de um PNG com seu tipo e CRC, os cabeçalhos de arquivo locais de um arquivo ZIP, os load commands de um binário Mach-O, os campos do cabeçalho de um arquivo SQLite, analisados e dispostos ao lado dos bytes brutos, com zero configuração. Os templates embutidos do Hex Fiend conseguem te dar um detalhamento parecido, mas você precisa navegar por uma lista de templates e aplicar um você mesmo primeiro.

Além disso, cálculo de hashes, extração de strings e detecção de anomalias (picos de entropia, assinaturas incompatíveis, sequências de bytes suspeitas) são embutidos diretamente no Hexter, ao passo que, no mundo do Hex Fiend, essas coisas costumam ser uma ferramenta separada.

A recomendação honesta

Use o Hex Fiend se você já se sente à vontade com editores hexadecimais, precisa lidar com arquivos muito grandes ou quer uma ferramenta gratuita com um longo histórico e uma comunidade ativa. Use o Hexter se você quer um editor hexadecimal que assume que você pode estar examinando um arquivo em que ainda não confia totalmente, que por padrão não o toca, e que te conta mais sobre formatos comuns sem nenhuma configuração. Nenhum dos dois está errado. Eles são construídos em torno de suposições diferentes sobre quem os usa e por quê.

O Hexter está em desenvolvimento ativo. Se somente leitura por padrão, análise de estruturas embutida e uma interface nativa moderna são o que você quer de um editor hexadecimal, esse é o app para ficar de olho.