Stripped and Unstripped
Mengenal perbedaan binary stripped dan unstripped
Saat melakukan analisis terhadap suatu binary, kita sering menemui istilah stripped dan unstripped (atau not stripped). Pada bagian ini, kita akan membahas dua istilah penting tersebut.
Apa itu Binary Stripped dan Unstripped?
Ketika melakukan reverse engineering, kita akan menganalisis binary, misalnya menggunakan perintah file. Di sini kita akan ditampilkan informasi tentang binary tersebut, apakah stripped atau unstripped.
Unstripped Binary Binary yang masih mengandung informasi tambahan seperti nama fungsi, nama variabel, simbol, dan informasi debug. Informasi ini memudahkan seorang reverse engineer karena bisa dengan mudah mengetahui nama fungsi dan struktur kode program.
Stripped Binary Kebalikan dari unstripped. Binary ini sudah tidak mengandung informasi tambahan seperti nama fungsi atau variabel, simbol, serta informasi debug lainnya. Semuanya dihapus agar ukuran file lebih kecil dan sulit dipahami saat di-reverse engineering.
Analoginya seperti ini:
Unstripped: Seperti buku lengkap yang punya judul bab, daftar isi, nomor halaman, dan nama-nama tokoh yang jelas. Kita bisa dengan mudah menemukan bagian tertentu.
Stripped: Seperti buku yang semua judul bab, daftar isi, nomor halaman, dan nama tokohnya dihapus. Kita harus membaca perlahan untuk memahami alur cerita dan mencari tahu siapa tokohnya.
Kapan Stripped Digunakan?
Biasanya binary sengaja di strip dengan tujuan berikut:
Mengurangi ukuran binary, sehingga lebih ringan saat distribusi.
Menyulitkan proses analisis dan reverse engineering agar kode tidak mudah dipahami orang lain, sehingga lebih aman dari eksploitasi.
Contoh Perbedaan Binary Stripped dan Unstripped
1. Membuat Program
Berikut adalah kode program sederhana dalam bahasa C yang digunakan untuk perbandingan:
2. Kompilasi Program
Ada dua jenis cara mengompilasi program ini, yaitu unstripped (default) dan stripped (informasi simbol dihapus).
a. Unstripped Binary
Kompilasi biasa (tanpa opsi tambahan):
b. Stripped Binary
Ada dua cara melakukan stripping:
Gunakan opsi
-ssaat kompilasi:
Menggunakan perintah
stripsetelah kompilasi
3. Perbandingan Hasil
Untuk membandingkan hasil antara binary unstripped dan stripped, kita gunakan perintah berikut:
a. Unstripped Binary
Kita cek apakah fungsi say_hello masih bisa dilihat:

Bisa kita lihat, fungsi say_hello terlihat jelas.
b. Stripped
Jika binary sudah stripped, nama fungsi tersebut tidak akan muncul lagi:

Dalam alat bantu seperti Ghidra atau IDA Pro, nama fungsi muncul sebagai alamat memori saja seperti FUN_00101173.
4. Ukuran File Binary
Ukuran binary stripped lebih kecil karena semua informasi tambahan sudah dihapus.
Last updated