EUTECNICO

O que é Magic Byte (assinatura de arquivo) e por que trocar a extensão não engana ninguém

0% lido
Diversos

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.

C
Carlos
18 de julho de 20264 min de leitura200 visualizações
O que é Magic Byte (assinatura de arquivo) e por que trocar a extensão não engana ninguém
Resumo Inteligente (TL;DR)

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#

FormatoExtensãoMagic bytes (hex)Representação ASCII
PDF.pdf25 50 44 46%PDF
PNG.png89 50 4E 47 0D 0A 1A 0A.PNG....
JPEG.jpg / .jpegFF D8 FF—
GIF.gif47 49 46 38GIF8
ZIP e derivados (docx, xlsx, pptx, apk, jar).zip50 4B 03 04PK..
RAR.rar52 61 72 21 1A 07Rar!..
Executável Windows (PE).exe / .dll4D 5AMZ
ELF (executável Linux)(sem extensão fixa)7F 45 4C 46.ELF
MP3.mp349 44 33 (ID3)ID3
SQLite.db / .sqlite53 51 4C 69 74 65SQLite

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.exe para foto.jpg não transforma o executável em imagem. O arquivo continua começando com 4D 5A (MZ), a assinatura de um executável PE válido — só o rótulo mudou.
  • Um arquivo .pdf corrompido ou nunca gerado corretamente pode não ter a assinatura %PDF no 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 .jpg para 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 comando file no Linux) ou python-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-Type ou 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:

bash
# 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 file e xxd já são suficientes para conferir isso manualmente no dia a dia.
C

Escrito por

Carlos

Publicado em 18 de julho de 2026 • 200 visualizações

← Mais de Diversos

Compartilhe este artigo:

O que achou deste artigo?

Sua avaliação ajuda a melhorar o conteúdo do EuTécnico.

💬 Comunidade EUTECNICO

Participe do Fórum EUTECNICO

Tem dúvidas sobre um reparo, procura um arquivo de BIOS específico ou quer compartilhar conhecimento com outros técnicos? Entre no nosso fórum oficial!

💬 Comentários

Comentários são carregados do GitHub Discussions. Faça login com sua conta GitHub para comentar!