O que é um editor hexadecimal (e quando você de fato precisa de um)
Alguém te disse para “verificar em um editor hexadecimal”, ou você procurou por um visualizador hexadecimal e caiu aqui sem ter total certeza do que ele é. Tudo bem. Um editor hexadecimal é um programa que te mostra o conteúdo bruto de um arquivo, byte por byte, em vez de tentar interpretá-lo como um documento, uma imagem ou uma planilha. É o mais perto que você pode chegar de olhar exatamente o que está armazenado em disco.
Por que hexadecimal, especificamente
Um arquivo, qualquer arquivo, é só uma sequência de bytes, e cada byte é um número de 0 a 255. Você poderia exibir esses números em decimal, mas 0 a 255 ocupa até três dígitos e não se alinha de forma limpa. Você poderia exibi-los em binário, mas um único byte são oito dígitos de 1s e 0s, o que é difícil de examinar visualmente. O hexadecimal (base 16, usando os dígitos 0-9 e as letras A-F) é o meio-termo: cada byte cabe em exatamente dois caracteres, de 00 a FF, então uma linha de bytes se alinha em uma grade organizada e fácil de examinar. Essa é a razão inteira de “hex” ser o padrão, e não decimal ou binário. É uma escolha de legibilidade, não uma exigência técnica.
O que você está de fato olhando
Abra qualquer arquivo em um editor hexadecimal e você verá três coisas lado a lado, para os mesmos dados:
- Offset: quão adentro do arquivo você está, normalmente mostrado no próprio hex, para que você possa voltar a uma posição específica depois.
- Bytes hex: os dados de fato, dois caracteres por byte, agrupados em linhas (comumente 16 bytes por linha).
- Visão de texto (ASCII): os mesmos bytes reinterpretados como caracteres, para a parte do arquivo que por acaso for texto legível. Bytes que não são texto normalmente aparecem como um ponto no lugar.
Essa terceira coluna é o motivo de caminhos de arquivo, rótulos e strings de versão muitas vezes ficarem visíveis mesmo em arquivos que são majoritariamente dados binários: qualquer texto embutido aparece nessa coluna, mesmo que o arquivo como um todo não seja um arquivo de texto.
Quando você de fato precisaria de um
A maioria das pessoas passa a vida inteira sem abrir um editor hexadecimal, e isso é completamente normal. As situações em que ele é genuinamente a ferramenta certa são específicas:
- A extensão de um arquivo não bate com seu conteúdo real. Alguém renomeou um
.zippara.doc, ou você não tem certeza de que um arquivo.dbé mesmo um banco de dados. Os primeiros bytes da maioria dos formatos são uma assinatura distintiva (o PNG começa com89 50 4E 47, o ZIP com50 4B), e uma visão hexadecimal confirma isso em segundos. - Um arquivo está corrompido e você quer saber como. Download truncado, transferência ruim, um cabeçalho que foi sobrescrito. Ver os bytes brutos te diz se o dano está no início, no fim ou espalhado.
- Você está depurando algo que lê ou escreve dados binários, um formato de save, um arquivo de configuração, um protocolo de rede, e precisa confirmar exatamente quais bytes estão sendo produzidos.
- Você quer verificar um valor específico, como confirmar que quatro bytes realmente representam o tamanho de arquivo que você espera, ou checar um carimbo de data/hora, sem confiar que uma ferramenta caixa-preta o interprete corretamente.
- Curiosidade. Muita gente abre um editor hexadecimal uma vez só para ver como um formato de arquivo familiar de fato parece por baixo. Essa é uma razão completamente legítima.
Se nenhuma dessas descreve o que você está fazendo, você provavelmente não precisa de um, e tudo bem. É uma ferramenta especialista para um tipo específico de pergunta.
O que torna um editor hexadecimal bom, não apenas funcional
Uma vez que você precisa de um, as ferramentas em geral fazem o mesmo trabalho básico: mostrar bytes, deixar você rolar, deixar você buscar. As diferenças que importam são sobre segurança e clareza, não sobre puro número de recursos. O Hex Fiend é a opção gratuita e open source que a maioria dos usuários de Mac acaba usando por padrão, e ele é genuinamente capaz, em especial com arquivos muito grandes. O Hexter adota uma abordagem mais estreita e cautelosa: todo arquivo abre em modo somente leitura, então examinar algo desconhecido não traz risco algum, editar é um passo explícito e reversível em vez do estado padrão, e formatos de arquivo comuns (PNG, ZIP, Mach-O, WAV, SQLite) têm sua estrutura analisada automaticamente, em vez de deixar você decodificar cabeçalhos à mão.
Qual dos dois você quer depende do que você está fazendo. Se você está comparando dois arquivos de vários gigabytes byte a byte, a comparação do Hex Fiend foi feita para essa escala. Se você só precisa confirmar o que um arquivo de fato é, checar um punhado de bytes, ou fazer uma pequena edição cuidadosa sem se preocupar em destruir o original por acidente, essa é a situação para a qual o Hexter foi feito.