O que é Magic Byte (assinatura de arquivo) e por que trocar a extensão não engana ninguém
Se você já trabalhou com recuperação de dados, diagnóstico de arquivos corrompidos ou análise de malware, provavelmente já ouviu falar em magic bytes (também chamados de file signature ou assinatura de arquivo). Entender esse conceito é essencial para qualquer técnico que precisa identificar rapidamente o tipo real de um arquivo, sem depender do nome que ele carrega.

Se você já trabalhou com recuperação de dados, diagnóstico de arquivos corrompidos ou análise de malware, provavelmente já ouviu falar em magic bytes (também chamados de file signature ou assinatura de arquivo). Entender esse conceito é essencial para qualquer técnico que precisa identificar rapidamente o tipo real de um arquivo, sem depender do nome que ele carrega.
O que são magic bytes#
Magic bytes são os primeiros bytes de um arquivo binário, gravados pelo próprio programa que criou o arquivo, e que identificam de forma inequívoca o formato daquele arquivo. É como uma impressão digital fixa no início de cada arquivo — independente de como ele foi renomeado, os bytes iniciais continuam os mesmos.
Isso existe porque o sistema operacional e os programas precisam de uma forma confiável de saber "o que é" um arquivo antes de tentar abri-lo. Se essa identificação dependesse só do nome, qualquer erro de digitação ou renomeação acidental quebraria a leitura do arquivo.
Normalmente esses bytes ficam logo no início do cabeçalho (header) do arquivo — nos primeiros 4 a 16 bytes na maioria dos formatos, embora alguns formatos guardem a assinatura um pouco mais adiante no arquivo.
Tabela de magic bytes mais comuns#
| Formato | Extensão | Magic bytes (hex) | Representação ASCII |
|---|---|---|---|
.pdf | 25 50 44 46 | %PDF | |
| PNG | .png | 89 50 4E 47 0D 0A 1A 0A | .PNG.... |
| JPEG | .jpg / .jpeg | FF D8 FF | — |
| GIF | .gif | 47 49 46 38 | GIF8 |
| ZIP e derivados (docx, xlsx, pptx, apk, jar) | .zip | 50 4B 03 04 | PK.. |
| RAR | .rar | 52 61 72 21 1A 07 | Rar!.. |
| Executável Windows (PE) | .exe / .dll | 4D 5A | MZ |
| ELF (executável Linux) | (sem extensão fixa) | 7F 45 4C 46 | .ELF |
| MP3 | .mp3 | 49 44 33 (ID3) | ID3 |
| SQLite | .db / .sqlite | 53 51 4C 69 74 65 | SQLite |
Repare que formatos modernos do Office (docx, xlsx, pptx) e até .apk do Android compartilham a mesma assinatura do ZIP — porque na prática são containers ZIP com uma estrutura interna específica.
Por que a extensão do arquivo não significa nada por si só#
A extensão de um arquivo é apenas um metadado do nome, uma convenção usada pelo sistema operacional para decidir qual programa deve abrir aquele arquivo por padrão. Ela não tem nenhum vínculo obrigatório com o conteúdo binário real.
Isso significa que:
- Renomear
virus.exeparafoto.jpgnão transforma o executável em imagem. O arquivo continua começando com4D 5A(MZ), a assinatura de um executável PE válido — só o rótulo mudou. - Um arquivo
.pdfcorrompido ou nunca gerado corretamente pode não ter a assinatura%PDFno início, revelando que o problema não é abertura, é que o conteúdo não é (ou deixou de ser) um PDF válido. - Um upload malicioso pode ter extensão
.jpgpara passar por filtros ingênuos de upload, enquanto o conteúdo real é um script ou executável.
Por esse motivo, qualquer verificação séria de tipo de arquivo — seja em segurança, seja em diagnóstico técnico — ignora a extensão e lê os bytes reais.
Onde essa verificação é usada na prática#
- Antivírus e sandboxes identificam o tipo real do arquivo pelos magic bytes antes de decidir qual motor de escaneamento aplicar, independente da extensão declarada.
- Bibliotecas de detecção de tipo, como
libmagic(usada pelo comandofileno Linux) oupython-magic, leem os primeiros bytes do arquivo e retornam o tipo real. - Servidores web e serviços de upload combinam MIME sniffing com verificação de magic bytes para não confiar apenas no
Content-Typeou na extensão enviada pelo cliente. - Diagnóstico de arquivos corrompidos: ao inspecionar o cabeçalho e ver que a assinatura não bate com o formato esperado, você já sabe que o problema está na origem do arquivo, não na forma de abri-lo.
Como conferir a assinatura de um arquivo na prática#
No Linux, duas formas rápidas:
# Identifica o tipo real do arquivo pela assinatura
file arquivo.pdf
# Mostra os bytes em hexadecimal para inspeção manual
xxd arquivo.pdf | head
Se a saída do file não corresponder à extensão do arquivo, ou se o xxd não mostrar a assinatura esperada logo nos primeiros bytes, você tem a confirmação de que o arquivo não é (ou não é mais) o que o nome sugere.
Resumo#
- Magic bytes identificam o formato real de um arquivo pelo conteúdo, não pelo nome.
- A extensão é só uma etiqueta; renomear um arquivo não altera seus bytes internos.
- Ferramentas de segurança e diagnóstico sempre verificam a assinatura real antes de confiar no tipo declarado.
- Comandos simples como
fileexxdjá são suficientes para conferir isso manualmente no dia a dia.
Escrito por
Carlos
Publicado em 18 de julho de 2026 • 200 visualizações
← Mais de DiversosO que achou deste artigo?
Sua avaliação ajuda a melhorar o conteúdo do EuTécnico.