Reversing & Cracking Program Sederhana

Reverse engineering. Reverse Engineering atau rekayasa balik merupakan sebuah metoda yang banyak digunakan dalam proses analisa malware. Ibaratnya sebuah kue, setelah melakukan proses reverse engineering pada kue tersebut, maka kita akan mendapatkan resep dari kue tersebut. Resep ini kemudian dapat kita pelajari, kita modifikasi dst. Atau contohnya sebuah mobil, melakukan reverse engineering berarti kita bongkar mobil tersebut, dan kita lepaskan semua komponen mobil tersebut satu-persatu, sampai bagian terkecil. Kemudian kita pelajari cara kerja komponen tersebut.

Sementara melakukan reverse engineering pada sebuah aplikasi berarti kita membongkar sebuah aplikasi dan mengembalikannya pada bentuk source code. Begitu juga pada sebuah sampel malware, setelah kita melakukan reverse engineering, maka kita akan mendapatkan source code dari malware tersebut.

Dari source code inilah kita dapat mempelajari cara kerja malware, karakteristiknya, teknik infeksi yang digunakan dll. Keuntungan melakukan reverse engineering pada analisa malware adalah, malware tidak kita jalankan (execute) sehingga meminimalisir kemungkinan komputer kita terinfeksi malware tersebut. Walaupun begitu sangat dianjurkan melakukan analisa malware ini pada sistem yang memang disiapkan khusus untuk melakukan analisa malware. Misalnya pada sebuah virtual machine, ataupun komputer yang tidak digunakan untuk aktifitas lainnya.

Saya sudah menyiapkan file binary untuk bahan pembelajaran kita di sini

Reverse engineering membutuhkan beberapa tool seperti : IDA, Redare2, GHidra, GDB Peda dll.Kali ini saya akan menggunakan IDA, yang pakai linux bisa menggunakannya melalui wine

Pertama, kita buka program IDA yang sudah ter-install dan load file binary yang sudah kita download tadi

kita akan mendapatkan tampilan graph seperti diatas. Sebelumnya kita akan mengenal sedikit interface pada program IDA ini

  1. Function Name sidebar kiri ada yang namanya function name, pada sidebar ini ditampilkan daftar function yang ada pada program yang kita reverse , berhubung program yang kita reverse bukan binary stripped jadi nama-nama fungsi masih bisa terbaca

2. IDA View

menampilkan hasil dissasmbly

3. Daftar Segment / Section

Berisi segment-segement , beberapa segment yang perlu diperhatikan :

  • plt got & plt got : fungsi lib C yang di import
  • init : entry point yang di eksekusi OS
  • fini : section yang dieksekusi setelah semua selesai
  • rodata : read-only data, menyimpan data-data string
  • data : menyimpan global variabel
  • text : menyimpan intruksi program

4. Virtual address

Berisi virtual address dari fungsi

Ok, saya rasa sudah cukup untuk pengenalan interface IDA.Sekarang, mari kita lanjutkan investigasi program yang telah kita download.

Kita coba run di terminal , kira-kira kita disuruh ngapain sih ternyata setelah kita run : ./license_1 disuruh menambahkan argumen yang sepertinya kita disuruh memasukkan key lisensi nya

saya akan mencoba memasukkan key secara random

dan ternyata mendapatkan pesan WRONG!

sekarang kita kembali ke IDA dan coba tekan f5 untuk mendapat pseudo code-nya seperti gambar dibawah ini :

Nahh, disana kita sudah menemukan string yang menarik 🙂 , mari kita coba pahami program tersebut , pada if pertama jika kita memasukkan argumen kedua maka menjalankan printf dan fungsi lain dibawahnya, lalu pada if kedua berisi strcmp yang mana fungsi tersebut digunakan untuk membandingkan suatu nilai. disana kita melihat string AAAA-Z10N-42-OK yang kemungkinan ada serial key dari program tersebut. untuk mencobanya, kita run lagi file binary tersebut

dan benar saja, program tersebut memberikan output Access Granted! yang mana artinya kondisional kita terpenuhi dengan memasukkan string yang kita dapat dari IDA.

Ok, sekian dulu tulisan kali ini. Semoga bermanfaat buat temen-temen yang baru belajar reversing. jika ada kesalahan tulisan mohon dimaafkan 🙂 dan silahkan coret-coret di kolom komentar dibawah. Terima kasih

About Roby Firnando 4 Articles
a Computer Nerd , 0% Have Fun

4 Comments

Leave a Reply

Your email address will not be published.


*