Examinar os bytes iniciais e o tipo provável

Escolha um arquivo e a página lê os primeiros 64 KB: os bytes iniciais são comparados com uma tabela de assinaturas (PNG, JPEG, HEIC, PDF, ZIP, TAR, WOFF2, OTF, MP3, WAV, MP4, MOV, WASM e outras) e, quando nada corresponde, o conteúdo é classificado como texto (JSON, XML, CSV, YAML, Markdown) ou como dados binários. O relatório coloca o tipo detectado e uma extensão sugerida ao lado do tipo declarado pelo navegador e da extensão do nome, e indica a confiança: Alta com assinatura, Média pela estrutura do texto e Baixa em arquivos vazios ou binários desconhecidos. A detecção é uma pista, não uma prova de validade ou segurança.

Funciona localmente no seu navegador
Processamento local ·
PNG · JPEG · HEIC · PDF · ZIP · TAR · WOFF2 · OTF · MP3 · WAV · MP4 · MOV · WASM · JSON · CSV · YAML

A detecção por assinatura é uma pista, não um veredito antivírus.

Como identificar um arquivo pela assinatura

Escolha um arquivo local e a página lê os primeiros 64 KB: os bytes iniciais são comparados com uma tabela de assinaturas (PNG, JPEG, HEIC, PDF, ZIP, TAR, WOFF2, OTF, MP3, WAV, MP4, MOV, WASM e outras) e, quando nenhuma assinatura corresponde, o conteúdo é classificado como texto (JSON, XML/HTML/SVG, CSV/TSV, YAML, Markdown ou texto simples) ou como dados binários. Nada é enviado: o relatório, a prévia hexadecimal de 24 bytes e a assinatura de 8 bytes ficam na página.

O relatório coloca o tipo detectado e uma extensão sugerida ao lado do tipo declarado pelo navegador e da extensão do nome, com um nível de confiança: Alta quando uma assinatura corresponde, Média quando só a estrutura do texto decide e Baixa para arquivos vazios e dados binários não reconhecidos.

  1. Arraste um arquivo para a área ou clique para escolher; não existe botão de execução.
  2. Leia o relatório: tipo detectado, extensão sugerida, tipo declarado pelo navegador e extensão do arquivo.
  3. Confira Confiança, a métrica Assinatura (primeiros 8 bytes) e a prévia hexadecimal (primeiros 24 bytes).
  4. Leia as conclusões: extensão correspondente ou divergente, ausência de extensão, arquivo vazio, corte em 64 KB, JSON parcial, dados binários ou marca de ordem de bytes UTF-16/32.
  5. Pressione Limpar para esvaziar entrada, prévia, métricas e conclusões; o mesmo arquivo pode ser escolhido de novo.

Quais assinaturas são verificadas, como funciona a detecção de texto e o que o relatório mostra

Quais assinaturas são verificadas

Imagens (PNG, JPEG, GIF, BMP, TIFF nas duas ordens de bytes, ICO, WEBP e as marcas HEIC/HEIF/AVIF), documentos (PDF, PostScript, RTF, SQLite), compactados (ZIP, incluindo o ZIP vazio PK 05 06, GZIP, RAR, 7z e TAR no deslocamento 257), executáveis e objetos (ELF, MZ do Windows, classe Java, WASM), fontes (WOFF, WOFF2, TTF, OTF, TTC), áudio (MP3 por etiqueta ID3 ou sincronia de quadro, WAV/AVI/WEBP via RIFF, OGG, FLAC, AIFF, MIDI) e vídeo (MP4, QuickTime «qt », M4V, 3GP, 3G2, WebM).

Em arquivos ISO-BMFF a marca depois de «ftyp» decide entre HEIC, HEIF, AVIF, QuickTime, M4A e 3GP; uma marca desconhecida é informada como video/mp4. Um MP3 sem etiqueta ID3 é reconhecido pelos bits de sincronia de quadro, em que o índice de bitrate 0/15 e o índice de taxa 3 são rejeitados para que dados aleatórios não coincidam por acaso.

De onde vem o tipo quando não há assinatura

Detecção de texto: um JSON.parse bem-sucedido resulta em application/json (um JSON cortado acrescenta a nota de JSON parcial), a primeira etiqueta decide XML, HTML ou SVG, uma varredura de delimitadores que respeita aspas decide CSV ou TSV, o YAML exige ao menos duas linhas de mapeamento com valores estruturais, as marcas de Markdown são reconhecidas e o resto é texto simples. Um byte NUL, uma sequência UTF-8 inválida com bytes de controlo ou mais de 30 % de bytes de controlo resultam em application/octet-stream com confiança Baixa.

Uma marca de ordem de bytes UTF-16LE/BE ou UTF-32 é lida como texto: sem essa verificação o prefixo FF FE pareceria uma sincronia de quadro MP3. Apenas os primeiros 64 KB são lidos, então um arquivo maior recebe a nota de corte e, se começar como JSON, a de JSON parcial em vez de um tipo errado.

O relatório, a extensão e a privacidade

A extensão é comparada com o tipo detectado por equivalências conhecidas (jpg/jpeg, tif/tiff, htm/html, yml/yaml, md/markdown, csv/tsv, heic/heif, m4a/m4b, 3gp/3g2, aif/aiff, mov/qt); arquivos de texto (txt/text/log/md/markdown/rst/adoc) aceitam txt ou md; arquivos sem extensão, incluindo os que começam por ponto, informam «não há extensão para comparar» em vez de uma divergência. O conteúdo vence o nome: um .png com bytes JPEG é informado como image/jpeg com aviso de divergência.

A confiança é Alta quando uma assinatura corresponde, Média quando só a estrutura do texto decide e Baixa para arquivos vazios e dados binários desconhecidos. A detecção é uma pista, não um veredito antivírus; tudo roda na página, nada é enviado e a ferramenta continua funcionando offline.

Ferramentas recentes: