Editor Hexadecimal Binário | Visualize e edite arquivos em hexadecimal
Arraste e solte um arquivo para ver seu conteúdo byte a byte em formato hexadecimal (hex dump). Identifique o verdadeiro tipo do arquivo através dos bytes mágicos, edite bytes individuais e baixe o resultado. O arquivo nunca é enviado a um servidor.
Assinaturas de arquivo comuns (números mágicos)
| Formato | Bytes iniciais (hex) | Deslocamento | Observação |
|---|---|---|---|
| PNG | 89 50 4E 47 0D 0A 1A 0A | 0 | Arquivo de imagem. Se os 8 bytes coincidirem, confirma-se PNG com quase total certeza |
| JPEG | FF D8 FF | 0 | Arquivo de imagem. O 4º byte varia conforme a variante (JFIF, Exif etc.) |
| GIF | 47 49 46 38 39 61 / 47 49 46 38 37 61 | 0 | A string ASCII "GIF89a" ou "GIF87a" |
| 25 50 44 46 2D | 0 | A string ASCII "%PDF-", seguida do número da versão | |
| ZIP / docx / xlsx / jar | 50 4B 03 04 | 0 | Formato ZIP. Office Open XML e muitos formatos de arquivo compactado são internamente ZIP |
| Executável do Windows (EXE/DLL) | 4D 5A | 0 | A string ASCII "MZ", um cabeçalho herdado do MS-DOS ainda presente no formato PE |
| Executável ELF | 7F 45 4C 46 | 0 | Executáveis e bibliotecas compartilhadas usados no Linux e sistemas similares |
Dicas para usar o editor hexadecimal
- Para desmascarar um arquivo cuja extensão foi alterada, compare seus bytes iniciais (bytes mágicos) com a tabela acima. A extensão é apenas um rótulo, mas os bytes mágicos vêm do próprio formato e são muito mais difíceis de falsificar.
- No modo de hexadecimal manual, você pode colar sequências de bytes copiadas de outras ferramentas (separadas por espaços ou quebras de linha, ambas funcionam) e carregá-las diretamente.
- Se você clicar na célula errada durante a edição, pressione Esc para cancelar a edição daquela célula sem alterar o byte.
- Ao depurar um protocolo binário, compare nesta ferramenta os bytes esperados com os que foram realmente enviados ou recebidos para localizar exatamente onde eles divergem.
Perguntas frequentes
FF D8 FF, é muito provável que seja uma imagem JPEG, independentemente da extensão.
Curiosidade — Por que a verdadeira identidade de um arquivo está nos bytes, não na extensão
A extensão de um arquivo é apenas uma dica que informa ao sistema operacional qual aplicativo usar para abri-lo; é um rótulo que existe de forma independente do conteúdo real do arquivo. Renomear `foto.jpg` para `notas.txt` não o transforma em texto, e remover a extensão de uma imagem real não apaga os dados da imagem por baixo. Justamente por esse rótulo ser, essencialmente, uma autodeclaração, o malware há muito tempo o explora para disfarçar executáveis como imagens ou documentos inofensivos.
Para contornar isso, a maioria dos formatos de arquivo incorpora um identificador único — chamado bytes mágicos ou número mágico — nos primeiros bytes. Um arquivo PNG, por exemplo, sempre começa com a sequência exata de 8 bytes `89 50 4E 47 0D 0A 1A 0A`, conforme definido pela especificação. Isso significa que um sistema operacional ou aplicativo só pode ter certeza real sobre o formato de um arquivo após inspecionar seu conteúdo real, não seu nome. Tanto o comando `file` do Unix quanto a detecção de tipo MIME dos navegadores baseiam-se principalmente na comparação desses bytes mágicos, e não na extensão.
Algumas sequências de bytes mágicos escondem um detalhe histórico engenhoso. Os 8 bytes do PNG incluem deliberadamente uma sequência de quebra de linha (0D 0A) justamente para que transferências em modo texto — que às vezes alteram as quebras de linha — possam ser detectadas como corrompidas. Longe de ser um identificador arbitrário, ele também funciona como uma verificação de integridade embutida, um pequeno detalhe que revela o quanto de reflexão existe por trás do design de formatos binários.