Os quatro bytes formam %PDF. A versão do PDF surge logo a seguir, por exemplo %PDF-1.7.
O que é um número mágico?
Um número mágico é a pequena sequência de bytes fixa no início de cada ficheiro. Identifica o formato antes de qualquer extensão ser lida. Esta página explica como funcionam, como são as assinaturas mais comuns e porque uma verificação por bytes mágicos vence sempre uma verificação por nome de ficheiro.
- Explicação em português simples
- 14 formatos cobertos
- Os bytes nunca saem do seu navegador
Factos principais
O que é?
Um número mágico é uma sequência de bytes fixa (normalmente entre 2 e 8 bytes) no início de um ficheiro que identifica o formato.
Onde fica?
Quase sempre no byte de posição 0. As imagens de disco ISO 9660 são a exceção conhecida: a sua assinatura
CD001fica na posição 32769 (setor 16).Extensão ou bytes?
Os bytes ganham. Renomear
report.exeparareport.pdfmuda o rótulo, não o conteúdo. Os bytes mágicos continuam a ser4D 5A.O que recebe de volta
O nosso Verificador de Tipo de Ficheiro devolve um de quatro veredictos: CORRESPONDE, DIVERGE, AMBÍGUO ou DESCONHECIDO. Cada um é uma resposta determinística sobre a identidade do formato, não sobre segurança.
Privacidade
O fluxo gratuito para ficheiro único é executado integralmente no seu navegador. Os bytes nunca saem do seu dispositivo.
Âmbito de segurança
Uma verificação por bytes mágicos identifica o formato, não malware. Use-a como primeiro sinal, não como veredicto antivírus.
Um número mágico (também chamado assinatura de bytes mágicos ou assinatura de ficheiro) é uma pequena sequência de bytes fixa, escrita logo no início de um ficheiro, que identifica o seu formato verdadeiro. O sistema operativo usa-a antes de qualquer extensão. A extensão é apenas uma pista; o número mágico é a verdade.
Referência de assinaturas de bytes mágicos
14 assinaturas amplamente utilizadas, retiradas das especificações dos formatos. Os bytes hexadecimais estão em maiúsculas, separados por espaços. As pré-visualizações ASCII substituem os bytes não imprimíveis por um ponto.
PDF
- Bytes mágicos (hex):
25 50 44 46- ASCII:
%PDF- Extensões:
- Tipo MIME:
application/pdf- Posição:
- byte 0
PNG
- Bytes mágicos (hex):
89 50 4E 47 0D 0A 1A 0A- ASCII:
.PNG....- Extensões:
- .png
- Tipo MIME:
image/png- Posição:
- byte 0
JPEG
- Bytes mágicos (hex):
FF D8 FF- ASCII:
...- Extensões:
- .jpg, .jpeg
- Tipo MIME:
image/jpeg- Posição:
- byte 0
GIF
- Bytes mágicos (hex):
47 49 46 38 39 61- ASCII:
GIF89a- Extensões:
- .gif
- Tipo MIME:
image/gif- Posição:
- byte 0
BMP
- Bytes mágicos (hex):
42 4D- ASCII:
BM- Extensões:
- .bmp
- Tipo MIME:
image/bmp- Posição:
- byte 0
ZIP
- Bytes mágicos (hex):
50 4B 03 04- ASCII:
PK..- Extensões:
- .zip
- Tipo MIME:
application/zip- Posição:
- byte 0
RAR (v5)
- Bytes mágicos (hex):
52 61 72 21 1A 07 01 00- ASCII:
Rar!....- Extensões:
- .rar
- Tipo MIME:
application/vnd.rar- Posição:
- byte 0
7-Zip
- Bytes mágicos (hex):
37 7A BC AF 27 1C- ASCII:
7z....- Extensões:
- .7z
- Tipo MIME:
application/x-7z-compressed- Posição:
- byte 0
DOCX (Office Open XML)
- Bytes mágicos (hex):
50 4B 03 04- ASCII:
PK..- Extensões:
- .docx
- Tipo MIME:
application/vnd.openxmlformats-officedocument.wordprocessingml.document- Posição:
- byte 0
XLSX (Office Open XML)
- Bytes mágicos (hex):
50 4B 03 04- ASCII:
PK..- Extensões:
- .xlsx
- Tipo MIME:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet- Posição:
- byte 0
APK (Android package)
- Bytes mágicos (hex):
50 4B 03 04- ASCII:
PK..- Extensões:
- .apk
- Tipo MIME:
application/vnd.android.package-archive- Posição:
- byte 0
MP4 (ISO BMFF)
- Bytes mágicos (hex):
00 00 00 20 66 74 79 70- ASCII:
....ftyp- Extensões:
- .mp4, .m4v
- Tipo MIME:
video/mp4- Posição:
- byte 0
Windows PE / EXE
- Bytes mágicos (hex):
4D 5A- ASCII:
MZ- Extensões:
- .exe, .dll, .sys
- Tipo MIME:
application/vnd.microsoft.portable-executable- Posição:
- byte 0
ISO 9660
- Bytes mágicos (hex):
43 44 30 30 31- ASCII:
CD001- Extensões:
- .iso
- Tipo MIME:
application/x-iso9660-image- Posição:
- byte (setor 16)
PDF
PNG
Oito bytes que incluem os marcadores de fim de linha do PNG (
0D 0A 1A 0A), o que permite detetar erros de transmissão.JPEG
Marcador de Início de Imagem. O quarto byte distingue JFIF (
E0) de EXIF (E1).GIF
GIF89a é a variante moderna. GIF87a (
47 49 46 38 37 61) é a escrita antiga e também é válida.BMP
Dois bytes. Fácil de falsificar; combine com o cabeçalho de tamanho do ficheiro na posição 2 para esclarecer.
ZIP
Cabeçalho de ficheiro local. Os arquivos vazios usam
50 4B 05 06(fim do diretório central) em vez disso.RAR (v5)
Assinatura do RAR 5. Os ficheiros RAR 1.5 a 4.x mais antigos usam uma assinatura de 7 bytes terminada em
00.7-Zip
Seis bytes que formam
7zseguidos de três bytes mágicos.DOCX (Office Open XML)
O DOCX é um recipiente ZIP. A assinatura por si só não distingue um documento Word de um ZIP genérico. Veja o ficheiro interno
[Content_Types].xml.XLSX (Office Open XML)
Mesma ressalva que o DOCX. Inspecione o manifesto OOXML para confirmar a variante de folha de cálculo.
APK (Android package)
O APK é um recipiente ZIP com um manifesto Android lá dentro. A assinatura ZIP só por si não é prova suficiente.
MP4 (ISO BMFF)
A caixa
ftypna posição 4 transporta o identificador da marca. Marcas comuns:isom,mp42,iso5.Windows PE / EXE
Dois bytes (Mark Zbikowski). A posição do cabeçalho PE é lida no byte 0x3C; é aí que se encontra a assinatura
PE\0\0.ISO 9660
O ISO 9660 coloca o descritor de volume no setor 16, pelo que a assinatura fica no byte 32769 (16 * 2048 + 1).
Como funciona uma verificação por bytes mágicos
- 1
Ler os primeiros bytes
Abra o ficheiro como um fluxo binário e leia os primeiros 8 a 16 bytes. Isso chega para reconhecer todas as assinaturas da tabela acima.
- 2
Comparar com assinaturas conhecidas
Compare os bytes com uma base de dados de formatos conhecidos. Vários formatos podem partilhar o mesmo prefixo (todo o documento do Office é um ZIP), por isso a verificação devolve a correspondência mais específica.
- 3
Confrontar com a extensão do ficheiro
Se o formato detetado não coincidir com o que a extensão indica, o veredicto é DIVERGE. Se vários formatos se ajustarem, AMBÍGUO. Se nenhum se ajustar, DESCONHECIDO.
Porque é que isto importa?
Renomear um ficheiro de invoice.exe para invoice.pdf não muda os seus bytes. Os primeiros dois bytes continuam a ser 4D 5A. A verificação do número mágico apanha isso de imediato. Útil quando um anexo parece legítimo mas a extensão foi alterada antes de ser enviado.
As verificações por bytes mágicos também apanham o inverso: um ficheiro sem qualquer extensão mas com bytes PNG válidos continua a ser um PNG e o seu visualizador de imagens pode abri-lo. A identidade do formato está nos bytes, não no nome do ficheiro.
Glossário
Análises detalhadas por formato
Cada página foca-se num único formato: como reconhecê-lo, padrões comuns de divergência e uma verificação com um clique. Largue o seu ficheiro numa destas e o veredicto é o mesmo.
- .pdfPDF
Portable Document Format file
Magic bytes
25 50 44 46Isto é mesmo um PDF? - .exeEXE
Windows executable
Magic bytes
4D 5AIsto é mesmo um EXE? - .zipZIP
compressed archive
Magic bytes
50 4B 03 04Isto é mesmo um ZIP? - .docxDOCX
Microsoft Word document
Magic bytes
50 4B 03 04Isto é mesmo um DOCX? - .xlsxXLSX
Microsoft Excel spreadsheet
Magic bytes
50 4B 03 04Isto é mesmo um XLSX? - .pngPNG
Portable Network Graphics image
Magic bytes
89 50 4E 47 0D 0A 1A 0AIsto é mesmo um PNG? - .jpgJPG
JPEG photograph
Magic bytes
FF D8 FFIsto é mesmo um JPG? - .mp4MP4
MPEG-4 video
Magic bytes
00 00 00 20 66 74 79 70Isto é mesmo um MP4? - .apkAPK
Android package
Magic bytes
50 4B 03 04Isto é mesmo um APK? - .isoISO
optical disc image
Magic bytes
43 44 30 30 31Isto é mesmo um ISO?
Perguntas frequentes
Experimente no seu próprio ficheiro
Largue qualquer ficheiro. A verificação corre localmente e devolve um veredicto em menos de um segundo. Os bytes nunca saem do seu navegador.
Abrir o Verificador de Tipo de FicheiroLeituras relacionadas
Pilar
Extensão de ficheiro vs tipo de ficheiro
Uma extensão de ficheiro é apenas uma etiqueta. O tipo de ficheiro é o que os bytes de facto dizem. Eis como os dois divergem e como distingui-los.
Ler →Pilar
O meu ficheiro é seguro?
Uma verificação de bytes mágicos identifica o formato do ficheiro. Não lhe pode dizer se o ficheiro é malicioso. Eis o que cobre, e onde ainda precisa de um antivírus a sério.
Ler →Ferramenta
Verificador de tipo de ficheiro
Largue qualquer ficheiro. Devolve um de quatro veredictos em menos de um segundo. Os bytes nunca saem do seu navegador no fluxo gratuito.
Experimentar →