Pre-Introduction#
Pernahkah kalian bertanya-tanya, bagaimana sistem operasi komputer kalian mengidentifikasi jenis sebuah file? Bagaimana komputer kita tahu ini adalah file pdf, png, mp3, txt, atau yang lainnya? Apakah komputer mengenali jenis file hanya dari ekstensinya saja?
Nah, di artikel ini, saya akan coba bahas sedikit tentang file signature dengan bahasa yang (semoga) mudah dipahami oleh orang awam.
File Signature: Intro#
Oke, sekarang, kita akan bahas sedikit tentang file signature lebih dalam tentang file signature, mulai dari “definisi file signature” hingga “manipulasi file signature”.
What is file signature?#
File signature atau yang umum juga dikenal sebagai magic number atau file header, adalah sederet urutan byte tertentu dalam sebuah file yang ditujukan untuk memungkinkan program untuk mengenali jenis file tersebut tanpa harus bergantung pada ekstensinya.1 Jadi, dengan adanya file signature, program/software dapat tetap mengenali jenis suatu file, meskipun ekstensinya diubah atau dihapus.
Sebagai contoh, saya akan membuka sebuah file pdf dengan 3 skenario:
- file pdf yang ber-ekstensi “.pdf”.
- file pdf yang tidak ber-ekstensi “.pdf”.
- file pdf yang ber-ekstensi lain (".mp3").
Berikut adalah contoh ketika saya membuka file pdf yang ber-ekstensi pdf dengan tool atril:

Terlihat, file pdf dapat terbuka dengan baik.
Berikut adalah contoh ketika saya membuka file pdf yang tidak ber-ekstensi pdf dengan tool yang sama, yaitu atril:

Terlihat, file pdf juga dapat terbuka dengan baik.
Berikutnya, ini adalah contoh ketika saya membuka file pdf yang sudah saya ganti ekstensinya menjadi ekstensi file musik (".mp3"). Saya membukanya dengan tool yang sama, yaitu atril:

Terlihat, file pdf masih dapat terbuka dengan baik.
Dengan bukti tersebut, pahamlah kita bahwa meskipun tidak memiliki ekstensi sama sekali atau jika file ekstensinya sudah berubah, melalui file signature, sebuah program komputer (dalam contoh ini adalah atril) tetap dapat mengenali jenis file tersebut dan membukanya.
Notes:
Lalu, bagaimana dengan sistem operasi Windows?
Nah, sayang sekali, sampai hari ini, sepertinya memang Windows masih “ingin berbeda” dari Linux sehingga Windows sangat bergantung pada ekstensi sebuah file untuk mengenali jenis filenya. Artinya, kalau ekstensinya sudah berubah atau hilang, maka Windows akan membaca jenis file tersebut sesuai ekstensinya atau tidak bisa membacanya sama sekali (jika tidak ada ekstensi).
What is benefits of file signature?#
Berikut adalah beberapa manfaat dari file signature:1
- Mengidentifikasi jenis file.
Meskipun ekstensi file adalah cara yang paling populer digunakan untuk mengidentifikasi jenis file, tapi, file signature dapat melakukannya dengan lebih akurat.
- Memverifikasi integritas file.
Integritas file, sebagai salah satu komponen dalam konsep CIA (Confidentiality, Integrity, Availability) di Cyber Security, berperan penting untuk memastikan file tersebut utuh sebagaimana mestinya dan tidak diubah oleh hacker.
- Mencegah malware.
Para hacker jahat sering menyamarkan file yang mengandung virus. Dengan adanya file signature, antivirus dapat mendeteksinya dan mencegah file tersebut untuk dieksekusi.
- Meningkatkan efisiensi.
Sistem operasi dapat menganalisis file signature dan membantu memilihkan software yang sesuai untuk membuka file tersebut.
- Memastikan kompatibilitas.
File signature juga berfungsi untuk membantu software dalam menentukan apakah suatu file cocok atau sesuai dengan perangkat, sistem operasi, atau arsitektur tertentu.
File Signature: Advanced#
Di bagian “Advanced” ini, kita akan belajar hal-hal teknis, seperti cara melihat atau mengetahui file signature dan memanipulasinya (mengganti/menghapus).
How to find file signature?#
Linux only.
Ada banyak cara untuk mengetahui file signature sebuah file.
Tapi, perlu diketahui terlebih dahulu, file signature adalah bit yang umumnya terletak di bagian awal sebuah file. Ukurannya berkisar antara 2-4 bit. Jadi, misalnya, sebuah file dengan tipe pdf memiliki file signature: 25 50 44 46 2D.
Sebetulnya, cara yang paling umum untuk melihat file signature adalah dengan membuka file terkait dengan program hex editor. Beberapa tools yang dapat digunakan untuk melihat file signature:
- hexedit (CLI-based).
sudo pacman -Sy hexedit- hexyl (CLI-based).
sudo pacman -Sy hexyl- dhex (CLI-based).
sudo pacman -Sy dhex- dhex (CLI-based).
sudo pacman -Sy dhex- bless (GUI-based).
yay -Sy bless- okteta (GUI-based).
sudo pacman -Sy oktetaDaftar file signature: FileSignature.org
How to manipulate file signature?#
Kalau kita sudah dapat membuka sebuah file dengan program hex editor, seperti yang sudah saya sertakan di atas, artinya kita sudah bisa mengubah file signature file tersebut. Tapi, harus disadari juga bahwa mengubah file signature sama dengan membuat komputer atau sistem operasi bisa salah baca jenis file.
Sebagai ilustrasi, sebuah file pdf dengan file signature:
25 50 44 46 2D
kemudian diubah sedikit menjadi:
21 50 44 46 2D
akan tidak bisa dibaca lagi sebagai file pdf.
Kita akan lihat buktinya langsung melalui contoh berikut:
Berikut ini adalah file pdf dengan file signature yang masih normal:
Berikut ini adalah file pdf yang sama, tapi sudah saya ganti file signature-nya:
Sekian.
Artikel ini ditulis di Archlinux:


