Skip to main content
Background Image
  1. Teches/

File Signature: How Computer Identities Your Files

··772 words·4 mins· ·
Wildan
Author
Wildan
An Ordinary Human Being
Table of Contents

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:

  1. file pdf yang ber-ekstensi “.pdf”.
  2. file pdf yang tidak ber-ekstensi “.pdf”.
  3. file pdf yang ber-ekstensi lain (".mp3").

Berikut adalah contoh ketika saya membuka file pdf yang ber-ekstensi pdf dengan tool atril:

ss1
pdf with pdf extension

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:

ss2
pdf without pdf extension

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:

ss3
pdf with mp3 extension

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

  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.

  1. 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.

  1. Mencegah malware.

Para hacker jahat sering menyamarkan file yang mengandung virus. Dengan adanya file signature, antivirus dapat mendeteksinya dan mencegah file tersebut untuk dieksekusi.

  1. Meningkatkan efisiensi.

Sistem operasi dapat menganalisis file signature dan membantu memilihkan software yang sesuai untuk membuka file tersebut.

  1. 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:

  1. hexedit (CLI-based).
sudo pacman -Sy hexedit
  1. hexyl (CLI-based).
sudo pacman -Sy hexyl
  1. dhex (CLI-based).
sudo pacman -Sy dhex
  1. dhex (CLI-based).
sudo pacman -Sy dhex
  1. bless (GUI-based).
yay -Sy bless
  1. okteta (GUI-based).
sudo pacman -Sy okteta

Daftar 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:

ss4
pdf with correct file signature

Berikut ini adalah file pdf yang sama, tapi sudah saya ganti file signature-nya:

ss5
pdf with incorrect file signature

Sekian.


Artikel ini ditulis di Archlinux:

Related

How to Install Python Packages with `pip` & `pipx`
·893 words·5 mins
A step-by-step guidance on how to install python packages using pip & pipx.
BeatPrints: Your Favorite Spotify Poster
A quick and stylish posters for your favorite tracks!🎷☕️
Joining Windows and Linux Machine to a Domain (Windows Server 2022)
How to join a windows and linux machine to an active directory domain controller on Windows Server 2022