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"
PDF 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

Sim. Carregue o arquivo e compare seus bytes iniciais com a tabela de "assinaturas de arquivo comuns" acima. Se um arquivo chamado `.txt` na verdade começa com FF D8 FF, é muito provável que seja uma imagem JPEG, independentemente da extensão.

Renderizar de uma só vez um arquivo de centenas de megabytes ou vários gigabytes como despejo hexadecimal poderia travar ou congelar a aba do navegador devido à enorme quantidade de elementos DOM envolvidos. Limitar a visualização aos primeiros 64KB mantém casos de uso comuns, como inspecionar cabeçalhos de arquivo, seguros e responsivos.

Se o conteúdo exibido foi truncado para os primeiros 64KB, o download incluirá apenas esses 64KB (o que estiver além disso não é preservado). Para arquivos de 64KB ou menos, tudo exceto os bytes que você editar é baixado exatamente como estava no original.

Não. O carregamento, a visualização, a edição e o download do arquivo acontecem inteiramente em JavaScript no seu navegador; o conteúdo do arquivo nunca é transmitido para lugar nenhum.
ツールくん

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.

→ Ver todas as curiosidades