Utilia

Visualizador hexadecimal de ficheiros

Abre qualquer ficheiro num visualizador hexadecimal no navegador: posições, hex e ASCII, pesquisa de bytes ou texto, inteiros e floats, tipo de ficheiro.

O ficheiro é lido no teu navegador, aos bocados, e nunca é enviado. Até ficheiros com vários gigabytes abrem de imediato.

Hexadecimal com 0x ou h (0x1F0, 1F0h), decimal (496) ou relativo (+16, -0x10).

Abre um ficheiro para veres os bytes.

Clica num byte para o selecionar; arrasta ou usa Shift+clique para selecionar um intervalo. Teclado: setas, Page Up/Down, Home/End, Ctrl+Home/End; junta Shift para alargar a seleção.

Sem seleção

TipoLittle-endianBig-endian
Seleção como texto UTF-8
—

Como usar o visualizador hexadecimal

  1. Larga um ficheiro na zona de largar ou clica nela para escolher um. Funciona com qualquer tipo e qualquer tamanho: o ficheiro é lido em pequenas fatias à medida que te deslocas, por isso uma imagem de disco de 4 GB abre tão depressa como um ícone de 4 KB.
  2. Lê as caixas Ficheiro, Tamanho e Tipo detetado. O tipo é determinado pelos primeiros bytes do ficheiro (o seu «número mágico»), não pela extensão.
  3. Percorre a vista com a roda do rato, arrasta o cursor Posição no ficheiro ou clica na vista e usa as setas, Page Up/Down, Home/End e Ctrl+Home/End.
  4. Clica num byte para o selecionar. Arrasta, ou usa Shift+clique, para selecionar um intervalo. O painel por baixo mostra o início, o fim e o comprimento da seleção, o valor no início da seleção descodificado como números, e a seleção como texto UTF-8.
  5. Escreve uma posição em Ir para a posição e clica em Ir: 0x1F0 ou 1F0h é hexadecimal, 496 é decimal, +16 e -0x10 movem a partir do byte atual.
  6. Para pesquisar, escreve em Pesquisar, escolhe Texto (UTF-8) ou Bytes hex e clica em Seguinte ou Anterior. A pesquisa recomeça do início quando chega ao fim do ficheiro, e a correspondência fica selecionada.

Ler as três colunas

Cada linha mostra 16 bytes. A coluna da esquerda é a posição (offset) do primeiro byte da linha, em hexadecimal. As colunas do meio são os próprios bytes, com dois algarismos hexadecimais cada (00 a FF) e um espaço maior depois do oitavo byte. A coluna da direita mostra os mesmos bytes em ASCII: os caracteres imprimíveis, do espaço (0x20) ao til (0x7E), aparecem tal como são, e todos os outros bytes como um ponto. É a disposição das ferramentas clássicas como xxd e hexdump -C.

Interpretação numérica

A tabela descodifica os bytes no início da seleção nos tipos de tamanho fixo mais comuns: inteiros de 8, 16, 32 e 64 bits com e sem sinal, e números de vírgula flutuante IEEE 754 de precisão simples (float32) e dupla (float64). Cada tipo é mostrado em Little-endian (byte menos significativo primeiro, usado pelos processadores x86 e ARM e pela maioria dos formatos de ficheiro do Windows) e em Big-endian (byte mais significativo primeiro, usado pelos protocolos de rede, pelos ficheiros class do Java, pelo PNG e pelo JPEG). Se o ficheiro for demasiado curto para um tipo, a célula mostra um traço. Os inteiros de 64 bits são calculados com exatidão, para lá do limite de 2^53 dos números em JavaScript.

Assinaturas de ficheiros

A maioria dos formatos binários começa com uma assinatura fixa: o PNG com 89 50 4E 47 0D 0A 1A 0A, o PDF com %PDF-, o ZIP (e portanto DOCX, XLSX, JAR, EPUB e APK) com PK 03 04, os executáveis ELF com 7F 45 4C 46 e os executáveis do Windows com MZ. A ferramenta verifica cerca de sessenta assinaturas de imagens, áudio, vídeo, arquivos, tipos de letra, executáveis, bases de dados e documentos. Quando nenhuma corresponde, indica se o início do ficheiro parece texto UTF-8.

Perguntas frequentes

O meu ficheiro é enviado?

Não. O navegador lê o ficheiro localmente com a File API, só as fatias que estás a ver são carregadas em memória e nada sai do teu computador.

Posso editar os bytes?

Não. Isto é um visualizador: nunca modifica o ficheiro. Usa-o para inspecionar cabeçalhos, encontrar strings, verificar uma assinatura ou perceber um formato binário.

Porque é que uma pesquisa encontra texto que não vejo na coluna ASCII?

A pesquisa de texto codifica a tua consulta em UTF-8. As letras acentuadas ocupam dois bytes em UTF-8 e aparecem como pontos na coluna ASCII, porque estão fora do intervalo ASCII imprimível. A caixa Seleção como texto UTF-8 mostra-as corretamente.

O que faz «Ignorar maiúsculas e minúsculas»?

Faz com que uma pesquisa de texto trate A–Z e a–z como equivalentes. Aplica-se apenas às letras ASCII; as pesquisas em hex correspondem sempre aos valores exatos dos bytes.

Qual pode ser o tamanho do ficheiro?

Não há um limite fixo. A visualização e a deslocação leem apenas as linhas visíveis, e uma pesquisa lê o ficheiro em blocos de 4 MB, com um indicador de progresso que podes cancelar.