Arquivos, binário e compressão

Identificar o tipo de arquivopelos bytes, não pelo nome

Escolha ou arraste um ou mais arquivos: cada um é identificado pelos primeiros bytes assim que é adicionado.

Identificar o tipo de arquivo

Arquivos

Arraste arquivos para cá ou use «Escolher arquivos». Até 20 arquivos por vez, de qualquer tamanho.

Só o começo de cada arquivo (e o fim de um ZIP) é lido, no seu navegador. Nada é enviado.

Resultado

Escolha ou arraste arquivos para identificá-los.

Muda só a exibição; nada é lido de novo. Assinaturas mais adiante no arquivo (tar, ISO, cabeçalho PE) aparecem à parte.

Escolha ou arraste arquivos para identificá-los.

O relatório é texto puro: um bloco por arquivo com tamanho, veredito, MIME, comparação de extensão e bytes de cabeçalho.

Você precisa identificar o tipo de arquivo quando o nome deixa de ser confiável: um anexo sem extensão, um download que não abre, um formulário de upload que deve recusar um script renomeado para foto.jpg. A extensão é só um rótulo que alguém escolheu; os primeiros bytes do arquivo — o número mágico ou assinatura — são gravados pelo programa que o criou.

Aqui dá para identificar o tipo de arquivo sem enviar nada: os bytes são lidos localmente, o formato e os tipos MIME candidatos são nomeados e o resultado é comparado com a extensão. A página também diz em que o veredito se baseia — assinatura exata, estrutura conferida como os nomes dentro de um ZIP, ou dedução pelo texto — e destaca os bytes que bateram, para você conferir por conta própria.

Por que identificar o tipo de arquivo aqui

Um veredito que você confere byte a byte, com a extensão verificada ao lado.

Você vê os bytes por trás do veredito

O cabeçalho aparece em hexadecimal e ASCII com a assinatura destacada: 89 50 4E 47 para PNG, 50 4B 03 04 para ZIP. Assinaturas mais adiante no arquivo, como o ustar do tar no deslocamento 257, aparecem com a posição.

Duas linhas de bytes de cabeçalho em hexadecimal; os oito primeiros estão destacados e marcados com um colchete, e uma linha pontilhada leva a um selo de formato de imagem com um visto verde.

A extensão é verificada, não aceita às cegas

Um PNG renomeado para .jpg é marcado como divergente, com o formato que .jpg deveria ter. Já um .docx que de fato é um contêiner ZIP aparece como compatível, e não como erro.

Um arquivo cujos primeiros bytes 50 4B 03 04 levam a um ícone de arquivo compactado, enquanto a etiqueta do nome mostra um ícone de imagem; um X vermelho indica que não batem.

Três coisas de que o veredito depende

01

Adicione arquivos, sem botão para apertar

Escolher ou arrastar já inicia a identificação, e arquivos novos entram no fim da lista em vez de substituí-la. Só os primeiros 64 KiB são lidos, mais os últimos 64 KiB quando o arquivo parece um ZIP: uma imagem de disco de 20 GB é tão rápida quanto um ícone de 20 KB.

  • «Carregar exemplos» adiciona quatro arquivos: um PNG normal, um PNG chamado .jpg, um .docx mínimo e um .bin não reconhecido.
02

Leia em que o veredito se baseia

Assinatura exata: bytes fixos em posição fixa bateram. Assinatura e estrutura conferida: um campo interno também foi lido, como os nomes dentro de um ZIP, a marca do ftyp de um MP4 ou o subtipo RIFF. Dedução por texto: o formato não tem número mágico fixo, como JSON, XML ou texto UTF-8.

  • Arquivos antigos do Office (doc, xls, ppt, msi) compartilham a mesma assinatura, então aparece uma lista de tipos MIME candidatos em vez de um chute.
03

Compare com a extensão e exporte

Compatível não é erro: .docx, .jar e .apk são ZIP e .m4a é um contêiner MP4. O que merece atenção é a divergência. A linha MIME do navegador mostra File.type, que vem da extensão — exatamente por isso não serve para validar.

  • A quantidade de bytes de cabeçalho exibidos muda só a tela; o relatório usa o mesmo comprimento.

O que reconhece e como decide

Mais de 70 formatos e subtipos

Imagens, PDF e documentos de escritório, arquivos compactados, executáveis (ELF, PE, Mach-O, WebAssembly), contêineres de áudio e vídeo, fontes, bancos de dados e capturas de rede, além de formatos de texto com marca inicial clara como XML, SVG, HTML e PEM.

Separa os contêineres ZIP

Lendo só os nomes do diretório central do ZIP, distingue DOCX, XLSX, PPTX, ODT, EPUB, JAR, APK e IPA de um ZIP comum, sem descompactar nenhuma entrada.

Comparação de extensão em cinco estados

Bate, não bate, compatível, sem extensão e não comparável: um .docx correto não é tratado como .zip errado, e um arquivo sem extensão ganha uma sugestão.

Tamanho exato, qualquer tamanho

Cada arquivo mostra o número exato de bytes ao lado de KiB, MiB ou GiB. Não há limite de tamanho, porque o custo de identificar não cresce com o arquivo.

Onde a detecção por assinatura para

Não é antivírus
Uma assinatura PNG correta não torna o arquivo seguro, e um veredito PE não o torna malicioso. Um arquivo poliglota pode ser uma imagem válida com outros dados depois. Para decisões de segurança, use um antivírus.
Uma assinatura pode indicar vários formatos
Documentos antigos do Office e instaladores MSI compartilham a assinatura OLE2, e um ZIP sem nomes reveladores continua ZIP. Nesses casos todos os tipos MIME candidatos são listados, em vez de escolher um.
Texto sem marca é só texto
CSV, YAML, INI, Markdown e código-fonte não têm assinatura e aparecem como texto puro (UTF-8, ou UTF-16 com marca de ordem de bytes). Outras codificações como Windows-1252 não são adivinhadas.
Identifica, não disseca
Nenhum arquivo compactado é extraído, nenhum EXIF é analisado e executáveis não são destrinchados por arquitetura ou seções; um dump hexadecimal completo é tarefa de um visualizador hexadecimal. No máximo 20 arquivos por vez, sem varrer pastas recursivamente.

Identificar o tipo de arquivo: perguntas frequentes

Como identificar um arquivo sem extensão?

Arraste o arquivo para a ferramenta acima para descobrir o formato e verificar a extensão. A identificação nunca usa o nome, só os primeiros bytes; sem extensão, a comparação mostra «sem extensão para comparar» e sugere uma extensão.

Como saber o tipo de arquivo no Linux?

Com file arquivo, que usa a base de assinaturas da libmagic, ou file --mime-type para ver só o tipo MIME. Esta página segue a mesma ideia para identificar o tipo de arquivo sem terminal, com uma tabela menor e documentada, mais a comparação de extensão.

Como abrir um arquivo sem extensão?

Primeiro identificar o tipo de arquivo aqui; depois abrir com um programa desse formato ou acrescentar a extensão sugerida. Se o arquivo veio de uma fonte desconhecida e o veredito for um executável, não renomeie para rodar.

O que significa um arquivo sem extensão?

Só que o nome não termina em .algo. O conteúdo continua tendo um formato, e ele costuma estar gravado nos primeiros bytes. Arquivos de sistema, dados recuperados e anexos de alguns e-mails chegam assim com frequência.

Como descobrir a extensão de arquivos desconhecidos?

Quando o formato é reconhecido, a linha «Extensão sugerida» mostra a extensão usual, por exemplo .pdf para %PDF-. Se não for reconhecido, as duas observações exibidas (bytes binários, UTF-8 válido) pelo menos dizem se é texto.

Dá para identificar o tipo de arquivo pelo conteúdo ou só pela extensão?

Pelo conteúdo, e é o mais confiável: a extensão é só parte do nome e pode ser trocada à vontade. É por isso que esta ferramenta lê os bytes e usa a extensão apenas para comparação.

Ainda tem dúvida?

Identificar o tipo de arquivo dos seus arquivos

Carregue primeiro os exemplos para ver lado a lado uma correspondência, uma divergência, um subtipo ZIP e um arquivo não reconhecido; depois arraste os arquivos de que você realmente desconfia.

Tudo roda localmente no seu navegador.