Reverse Engineering adalah teknik untuk mengetahui lajur dan cara kerja dari suatu program. Harapannya adalah penguji dapat mengetahui dan berharap mendapatkan flaw atau celah dari program yang dimaksud. Hal ini dilakukan dengan cara melihat source code pada program tersebut.
Reverse Engineering memiliki beberapa fungsi tetapi beberapa diantaranya bisa bernilai positif dan juga negatif.
- Memperbaiki bug/error
- Membuat patch aplikasi
- Mendapatkan data kredensial
- Melakukan bypass verifikasi
- Melakukan exploit terhadap aplikasi
- Analisis malware
- Mencari algoritma sebuah software
- Menyisipkan malware/backdoor/trojan/logger dan lain sebagainya.
Biasanya reversing digunakan untuk keperluan Pentest (Penetration Testing) yaitu melakukan testing terhadap keamanan sebuah aplikasi untuk mencari kelemahan dari aplikasi itu sendiri dan biasanya juga banyak digunakan dalam sebuah kompetesi CTF (Capture The Flag).
Beberapa contoh tahapan dalam melakukan reversing
Pertama, identifikasi terlebih dahulu target itu seperti apa. Dibuat menggunakan framework apa, bahasa apa, library apa, dsb. Masing-masing punya karakteristik sendiri sehingga butuh taktik yang berbeda pula.
Kedua, tentukan fokus yang diinginkan, kalian ingin melakukan reverse bagian apa? misal di malware bagian payload dan self-defense yang banyak dibahas. Bagaimana dia evade produk endpoint security, misalnya. Kalo bukan malware, kalian hanya tinggal disesuaikan saja, misal bagian otentikasi serial number.
Ketiga, buat gambaran kasar proses yang terjadi di sana (bagian yang ingin kita ketahui). Seandainya kita jadi programmer disana, bagaimana kita akan implementasikan. Tidak perlu terlalu spesifik atau detail membayangkannya. Kita hanya perlu membuat acuan awal, supaya kita dapat mengenali kode aplikasi dengan lebih mudah.
Keempat, trace dan baca semua kode yang relevan. Intinya baca dan pahami. Kalo belum paham, buat catatan, dan baca lagi alurnya.
Tools Reverse Engineering
Comments
Post a Comment