Tuesday, May 29, 2012

Yuk Kenalan dengan "Magic Number"

Apa itu Magic Number? Magic Number adalah suatu kode berupa bilangan heksadesimal untuk menentukan format dari suatu file, yang biasanya terletak di awal file tersebut. (definisi ane sendiri)
Yuk Kenalan dengan "Magic Number"
Membuka file .EXE dengan Notepad
Ketika kita membuka suatu file dengan menggunakan software tertentu, misal Adobe Reader, pertama software tersebut akan membaca Magic Number dari file yang dibuka, kemudian jika cocok, akan segera diproses pembacaan file yang lebih lanjut. Tujuannya adalah untuk menghindari error saat membuka file dengan ukuran yang besar. Membaca Magic Number tidak memerlukan banyak resource komputer, karena Magic Number hanya berukuran beberapa byte. Di bawah ini adalah situasi saat Magic Number nya tidak cocok.
Yuk Kenalan dengan "Magic Number"
Error saat membuka file .JPG di Adobe Reader



Berikut ini adalah beberapa Magic Number dari file-file yang sangat familiar:

File-file Gambar

JPEG - File JPEG (atau kita semua pasti kenal dengan ekstensi JPG) diawali dengan Kode Heksadesimal FF D8 dan diakhiri dengan FF D9.
GIF - File GIF diawali dengan "GIF89a" (Heksa nya: 47 49 46 38 39 61) atau "GIF87a" (47 49 46 38 37 61)
PNG - File PNG diawali dengan 8 byte, yaitu: \211 P N G \r \n \032 \n (89 50 4E 47 0D 0A 1A 0A).
TIFF - File TIFF diawali dengan 49 49 2A 00 atau 4D 4D 00 2A.

File-file Video

MP4 - File MP4 diawali dengan 00 00 00 18 66 74 79 70 33 67 70 35.
3GP - hayo.. yang di hapenya nyimpen bokep video2 lucu. File 3GP diawali dengan 00 00 00 nn 66 74 79 70 33 67 70, yang mana nn di sini bernilai relatif.

File-file Dokumen

PDF - File PDF diawali dengan "%PDF" (25 50 44 46).
Microsoft Office document (yang DOC, bukan DOCX) - File DOC diawali dengan kode heksa D0 CF 11 E0, kode ini kalau digabung dan dibaca, menjadi "DOCFILE0", kreatif ya ^^.
File-file TXT yang Unicode - ada macam-macam nih:
  1. UTF-16 Big Endian (atau bisa disebut Unicode Big Endian) diawali dengan FE FF.
  2. UTF-16 Little Endian (atau bisa disebut Unicode saja) diawali dengan FF FE. ini yang sering digunakan untuk membuat file TXT yang unicode.
  3. UTF-8 diawali dengan EF BB BF.
Yuk Kenalan dengan "Magic Number"
Opsi saat menyimpan file di Notepad


File-file Binary lain

EXE - File EXE diawali dengan "MZ" (4D 5A), ini adalah inisial dari sang pembuat format file tersebut, Mark Zbikowski. Ini boleh dibalik menjadi "ZM" (5A 4D), tapi itu tidak umum.

ZIP - File ZIP diawali dengan "PK" (50 4B), ini adalah inisial dari Phil Katz, pembuat software DOS compression utility PKZIP.

MIDI - File MIDI (atau kita semua pasti kenal dengan ekstensi MID) diawali dengan "MThd" (4D 54 68 64).

CLASS - File CLASS (file Java yang sudah ter-compile menjadi binary) diawali dengan kode heksa CAFEBABE. Ketika di-kompres dengan software Pack200, kode ini menjadi CAFED00D. mentang-mentang logo Java gambar kopi, Magic Number -nya ada Cafe-cafe nya.. tapi keren kok ^^

untuk daftar Magic Number yang lebih lengkapnya, silahkan kunjungi halaman sumber: Magic number (programming) dan List of file signatures.

Demikian tulisan saya tentang Yuk Kenalan dengan "Magic Number", semoga bermanfaat, terima kasih, wassalam..