Magic numbers são sequências de bytes usadas para identificar o tipo de arquivo ou formato de dados. Cada formato tem um valor específico, geralmente nos primeiros bytes do arquivo, que serve como assinatura.
Esses números permitem que sistemas operacionais e aplicativos reconheçam rapidamente o tipo de arquivo e
adotem a ação apropriada. Por exemplo, identificar se o arquivo é texto, imagem, áudio ou executável.
Alguns exemplos incluem 0x7F454C46 (ELF), 0xD0CF11E0A1B11AE1 (MS Office) e
0x89504E470D0A1A0A (PNG).
Ferramentas sugeridas
- Bless
- HxD
- Hexdump
- Hexedit
Exemplos de Assinaturas
1 - BMP (Header 42 4D)
2 - JPEG (Header FF D8) / (Footer FF D9)
3 - GIF (Header 47 49 46 38) / (Footer 00 3B)
4 - PNG (Header 89 50 4E 47) / (Footer 49 45 4E 44)
5 - ZIP (Header 50 4B 03 04)
Magic Numbers - Formatos Mais Comuns
| Hex signature | ASCII/ISO | Offset | Extensão | Descrição |
|---|---|---|---|---|
| 42 4D | BM | 0 | bmp | Bitmap image file |
| FF D8 FF E0 | ÿØÿà | 0 | jpg/jpeg | JPEG image |
| 47 49 46 38 | GIF8 | 0 | gif | GIF image |
| 89 50 4E 47 0D 0A 1A 0A | ‰PNG | 0 | png | PNG image |
| 25 50 44 46 2D | %PDF- | 0 | Adobe PDF Document | |
| 50 4B 03 04 | PK.. | 0 | docx/xlsx/pptx/jar/apk | ZIP container (Office docs, APK, JAR) |
| D0 CF 11 E0 A1 B1 1A E1 | .... | 0 | doc/xls/ppt | Microsoft OLE2 Compound |
| 7B 5C 72 74 66 31 | {\rtf1 | 0 | rtf | Rich Text Format |
| 43 72 32 34 | Cr24 | 0 | crx | Chrome Extension |
| 45 4D 4C 20 46 69 6C 65 | EML File | 0 | eml | Email message (MIME/RFC822) |
| 49 44 33 | ID3 | 0 | mp3 | MP3 audio (ID3 tag) |
| 66 74 79 70 4D 53 4E 56 | ftypMSNV | 0x08 | mp4 | MPEG-4 video |
| 1A 45 DF A3 | .... | 0 | mkv | Matroska video (MKV) |
| 46 4C 56 | FLV | 0 | flv | Flash Video |
| 4F 67 67 53 | OggS | 0 | ogg | Ogg multimedia |
| 52 49 46 46 | RIFF | 0 | avi/wav/webp | RIFF container |
| 52 61 72 21 1A 07 00 | Rar!... | 0 | rar | RAR archive v1.5 |
| 52 61 72 21 1A 07 01 00 | Rar!... | 0 | rar | RAR archive v5.0 |
| 37 7A BC AF 27 1C | 7z.... | 0 | 7z | 7-Zip archive |
| 1F 8B 08 | ... | 0 | gz | Gzip compressed file |
| 42 5A 68 | BZh | 0 | bz2 | Bzip2 compressed file |
| 75 73 74 61 72 | ustar | 257 | tar | TAR archive |
| 4D 53 43 46 | MSCF | 0 | cab | Microsoft Cabinet Archive |
| EB 3C 90 | ... | 0 | fat12/16 | FAT12/16 Boot Sector |
| EB 58 90 | ... | 0 | fat32 | FAT32 Boot Sector |
| EB 52 90 | ... | 0 | ntfs | NTFS Boot Sector |
| 53 EF | S. | 0x438 | ext2/ext3/ext4 | EXT Superblock |
| 55 AA | .. | 0x1FE | mbr | Master Boot Record (Boot sector) |
| 45 46 49 20 50 41 52 54 | EFI PART | 0x200 | gpt | GUID Partition Table |
| 43 44 30 30 31 | CD001 | 0x8001 | iso | ISO9660 CD/DVD image |
| 4B 44 4D | KDM | 0 | vmdk | VMware Virtual Disk |
| 76 68 64 78 66 69 6C 65 | vhdxfile | 0 | vhdx | Virtual Hard Disk (VHDX) |
| 45 52 02 00 00 | ER... | 0 | qcow | QEMU QCOW disk image |
| 45 57 46 | EWF | 0 | e01 | EnCase Forensic Image |
| 4D 5A | MZ | 0 | exe/dll/sys | Windows Executable |
| 7F 45 4C 46 | .ELF | 0 | elf | Linux Executable (ELF) |
| CA FE BA BE | .... | 0 | class | Java Class File |
| FE ED FA CE | .... | 0 | mach-o | Mach-O binary (32-bit) |
| FE ED FA CF | .... | 0 | mach-o | Mach-O binary (64-bit) |
| CF FA ED FE | .... | 0 | mach-o | Mach-O (reverso, little endian) |
| 23 21 | #! | 0 | sh/py/pl | Unix script (shebang) |
| 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 | SQLite format 3 | 0 | sqlite | SQLite Database |
| 21 42 44 4E | !BDN | 0 | pst | Outlook PST (ANSI) |
| 21 42 44 4F | !BDO | 0 | pst | Outlook PST (Unicode) |
| D4 C3 B2 A1 | .... | 0 | pcap | PCAP capture (little endian) |
| A1 B2 C3 D4 | .... | 0 | pcap | PCAP capture (big endian) |
| 45 56 54 58 | EVTX | 0 | evtx | Windows Event Log |
| 4C 00 00 00 | L... | 0 | lnk | Windows Shortcut (LNK) |
Conclusão
Os magic numbers são essenciais para a identificação de arquivos em análises forenses, permitindo reconhecer formatos mesmo quando extensões foram alteradas. São amplamente usados em editores, visualizadores e ferramentas de análise de incidentes digitais.