Detetor de tipo de ficheiro — os bytes decidem, e não o nome
Detetor de tipo de ficheiro
A extensão de um ficheiro é apenas um rótulo — renomear virus.exe para photo.jpg não muda nada lá dentro. Esta página lê os primeiros bytes de cada ficheiro carregado e compara-os com mais de 60 assinaturas mágicas reais: imagens, documentos, arquivos, áudio/vídeo, tipos de letra, executáveis, bases de dados e chaves. Obtém o tipo detetado, o tipo MIME, as extensões que esse tipo normalmente usa, um aviso quando a extensão contradiz o conteúdo, e onde o formato o transporta (dimensões da imagem, versão do PDF, marca do MP4). Tudo é inspecionado localmente no seu navegador.
Escolher ficheiros
Largue os ficheiros aqui, ou clique para os escolher Um ficheiro ou muitos. Só os primeiros 512 bytes de cada um são lidos; os ficheiros nunca saem desta máquina.
Nenhum ficheiro selecionado.
Resultados
A tabela de deteção aparece aqui depois de escolher ficheiros e carregar em Detetar.
O que significa "correspondência":consistente — a extensão coincide com o formato detetado; incompatível — o conteúdo é um formato diferente do que a extensão afirma (um ficheiro renomeado, ou pior); "sem assinatura" — os primeiros bytes não correspondem a nenhuma assinatura conhecida, o que é normal em texto simples, CSV e na maioria dos formatos de dados que simplesmente não têm cabeçalho. Privacidade: os ficheiros são lidos com o FileReader do próprio navegador; nada é enviado.
O que é uma assinatura de ficheiro?
Quase todos os formatos binários começam com uma sequência fixa de bytes — o número mágico — colocada ali para que um programa reconheça os seus próprios ficheiros sem confiar no nome. Um PNG começa sempre pelos oito bytes 89 50 4E 47 0D 0A 1A 0A ("\x89PNG\r\n\x1a\n"), um PDF pelo texto ASCII %PDF, um ZIP por PK\x03\x04 (as iniciais de Phil Katz, que concebeu o formato). Os sistemas operativos ignoram em grande parte estes bytes e olham para a extensão em vez disso — razão exata pela qual um ficheiro renomeado não "abre bem" em lado nenhum, e por que as ferramentas de segurança farejam o conteúdo.
Os primeiros bytes famosos
Bytes
Formato
Nota
89 50 4E 47 0D 0A 1A 0A
Imagem PNG
o \r\n protege contra corrupção de terminações de linha
FF D8 FF
Imagem JPEG
cada frame JPEG começa com um marcador SOI
25 50 44 46 2D
Documento PDF
"%PDF-1.7" — a versão segue-se
50 4B 03 04
Arquivo ZIP
docx/xlsx/odt/epub são ZIPs com uma extensão
D0 CF 11 E0
Office antigo
doc/xls/ppt/msi — o ficheiro composto OLE2
4D 5A
EXE do Windows
"MZ", em homenagem a Mark Zbikowski, da Microsoft
7F 45 4C 46
ELF do Linux
\x7fELF — programas e bibliotecas partilhadas
1A 45 DF A3
Matroska/WebM
início de contentor EBML
75 73 74 61 72no deslocamento 257
Arquivo TAR
a assinatura está escondida no fundo do cabeçalho
Como o detetor decide
Os primeiros 512 bytes de cada ficheiro são comparados com uma tabela de assinaturas por ordem de especificidade: as marcas de contentores (RIFF…WAVE vs RIFF…AVI vs RIFF…WEBP, caixas de marca ISO no deslocamento 8) são verificadas antes dos seus contentores genéricos, e os formatos baseados em ZIP (EPUB, ODF, OOXML) antes do ZIP simples. Quando um formato transporta metadados que se descrevem a si próprios, a página vai um nível mais fundo: as dimensões de PNG/GIF/BMP/JPEG/WebP são lidas dos seus cabeçalhos, a versão do PDF do byte 5, a marca do MP4 e a versão de classe Java nos seus deslocamentos padrão. Os ficheiros que não correspondem a nada passam por uma heurística de texto (BOM, <?xml, <html, shebang, rácio de imprimíveis) antes de serem considerados desconhecidos.
Erros comuns
"Diz ZIP mas o ficheiro é .docx" — isso está correto: um .docx é um arquivo ZIP cuja primeira entrada é [Content_Types].xml; o detetor reconhece esse caso e indica especificamente Office Open XML. "Diz que não há assinatura mas o ficheiro abre bem" — CSV, a maioria do código-fonte e inúmeros formatos científicos não têm bytes mágicos de todo; "sem assinatura" não é uma acusação. "Pode dizer-me se o ficheiro é seguro?" — não. A análise do conteúdo diz o que um ficheiro é, e não o que faz; um EXE é um EXE, seja um instalador ou malware.
Perguntas frequentes
Porque só 512 bytes? — todas as assinaturas suportadas vivem nos primeiros 512 bytes (a mais profunda é o ustar do TAR no deslocamento 257); ler mais abrandaria os lotes grandes sem qualquer ganho. Deteta a duração do vídeo? — não, apenas o contentor e a sua marca; a duração exige analisar o índice completo, o que é trabalho de um leitor. Vários ficheiros de uma vez? — sim, arraste uma seleção inteira; cada linha é detetada de forma independente. Página relacionada: para o sentido inverso — extensão para tipo MIME — use a Consulta de tipos MIME; para calcular o hash dos mesmos ficheiros, use o Hash de ficheiros em lote.
Autoteste
📁 Ferramentas de ficheiros
Utilitários de ficheiros locais para o seu navegador.