Apa itu Reverse Engineering? Pengertian, Fungsi, Contoh & Tahapannya serta 3 Tools yang Digunakan

30 March 2023

reverse engineering

Halo BroTech pada artikel kali ini kita akan membahas tentang pengertian Reverse Engineering, dan contoh penerapannya. Simak artikel berikut agar kamu bisa membuat pemodelan system dari hasil analisa ketingkat abstraksi yang lebih tinggi!

1. Pengertian Reverse Engineering

Reverse Engineering

Reverse Engineering (rekayasa balik) adalah proses mengambil sesuatu yang sudah ada, seperti perangkat keras, perangkat lunak, atau produk lainnya, dan menganalisanya untuk memahami bagaimana cara kerjanya atau dibuat. Tujuan dari reverse engineering dapat bervariasi, seperti untuk memperbaiki atau meningkatkan produk yang ada, mempelajari teknologi yang digunakan dalam produk tersebut, atau untuk membuat produk baru yang serupa.

Reverse engineering terutama dilakukan pada perangkat lunak dan perangkat keras.

Dalam perangkat lunak, reverse engineering dapat dilakukan untuk memahami bagaimana sebuah program bekerja atau untuk menemukan kelemahan dalam program tersebut.

Dalam perangkat keras, reverse engineering dapat dilakukan untuk memahami bagaimana sebuah produk dibuat, bagaimana komponen-komponen di dalamnya saling berinteraksi, dan bagaimana produk dapat ditingkatkan atau diperbaiki.

  • Rekayasa balik sudah dilakukan pada zaman ketika analisis perangkat keras masih bertujuan memperoleh keuntungan komersial atau militer.
  • Tujuannya adalah mengetahui cara merancang produk akhir dengan sedikit atau tidak adanya informasi tambahan mengenai prosedur pembuatan aslinya. Informasi pembuatan produk asli tersebut tidak tersedia entah karena memang dirahasiakan oleh pembuatnya atau karena hilang atau rusak
  • Teknik yang sama kini diteliti untuk diterapkan pada sistem perangkat lunak turunan, bukan untuk keperluan industri atau pertahanan, melainkan untuk menggantikan dokumentasi yang salah, tidak lengkap, atau belum tersedia
Baca juga : Apple Memperoleh Paten Lipat Baru: 5 Hal yang Harus Anda Tahu

Namun, Penting untuk diingat bahwa beberapa bentuk reverse engineering dapat melanggar hak kekayaan intelektual seperti hak cipta atau paten, sehingga reverse engineering harus dilakukan dengan hati-hati dan dalam batas-batas hukum yang berlaku

2. Fungsi Reverse Engineering

Dalam ilmu komputer sendiri, Reverse Engineering bisa diartikan dengan proses memahami algoritma atau struktur suatu aplikasi dan bahkan mungkin untuk mendapatkan source code dari aplikasi yang sudah berjalan atau binary / executable file. Sebenarnya 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
  • Mencari algoritma sebuah software
  • Menyisipkan malware/backdoor/trojan/logger dan lain sebagainya.

3. Contoh Penerapannya Reverse Engineering

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

Reverse Engineering juga sering digunakan untuk forensic (malware analysis) dan exploit development. Di forensic biasanya tujuannya untuk mengetahui perilaku malware dan dampaknya. Yang pada akhirnya harus membuat IOC (Indicator of Compromise). Tapi ketika menjumpai sebuah malware yang khusus menyasar suatu instansi, kita perlu lebih dalam menganalisanya, misalnya mencari pelaku yang terlibat.

Tapi memang biasanya ketika Incident Response, kita tidak perlu sampai dalam membongkar sebuah malware, karena fokus kita adalah kembali ke normal operation.

Sementara di exploit development reverse engineering digunakan untuk mencari celah. Bisa dengan memang membongkar produk versi tertentu. Tapi kadang kita dapat celah dengan membandingkan perbedaan (diffing) antara binary asal dan binary yang telah diperbaiki oleh vendor.

Atau bisa juga kita mendapatkan celah dari malware yang lebih dahulu memanfaatkan celah zero day tersebut. Keduanya merupakan penerapan reverse engineering yang lumrah di bagian security. Tentunya selain membuat crack, bot, dsb.

Baca juga :WOW 5 Trend Teknologi Terbaru Pengembangan Aplikasi Mobile

4. Tahapan Reverse Engineering

Ada beberapa tahapan dalam melakukan reversing. Itu semua tergantung pada target yang kita hadapi. Tetapi umumnya seperti ini:

  1. Pertama, Identifikasi terlebih dahulu target itu seperti apa. Dibuat menggunakan framework apa, bahasa apa, library apa, dsb.
  2. Kedua, tentukan fokus yang diingunkan, kalian ingin melakukan reverse bagian apa? misal di malware bagian payload dan self-defense yang banyak dibahas.
  3. Ketiga, buat gambaran kasar proses yang terjadi di sana (bagian yang ingin kita ketahui). Seandainya kita jadi programmer disana, bagaimana kita akan implementasikan.
  4. Keempat, trace dan baca semua kode yang relevan. intinya baca dan pahami. kalo belum paham, buat catatan, dan baca lagi alurnya.

5. Tools yang digunakan untuk Reverse Engineering

Sebenarnya untuk melakukan Reverse Engineering dasar utamanya kita harus memiliki kemampuan memprogram. Sedangkan tool Reverse Engineering hanya berguna untuk memudahkan pekerjaan RE yang tadinya butuh berjam-jam bisa jadi hanya butuh beberapa menit. Ada banyak tool untuk tujuan spesifik, contohnya seperti:

Disassembler (+decomplier) :

  • IDA Pro
  • Radare2 (+ cutlas sebagai GUI)
  • GHIDRA
  • JE82 (Untuk android)

Debugger :

  • x64dbg
  • Ollydbg
  • Immunity Debugger

Dynamic Binary Intrumentation :

  • Frida

6. Kesimpulan

Jadi apa itu Reverse Engineering? Sederhananya Reverse Engineering adalah proses yang digunakan untuk mengetahui komponen dan fungsi program untuk menemukan kerentanan dalam program. Itu dilakukan dengan memulihkan desain software asli dengan menganalisis kode atau biner program.

Tujuan dari reverse engineereing dapat bervariasi, seperti untuk memperbaiki atau meningkatkan produk yang ada, mempelajari teknologi yang digunakan dalam produk tersebut, atau untuk membuat produk yang serupa.
Reverse engineering terutama dilakukan pada perngkat lunak dan perangkat keras.

Nah itulah penjelasan singkat seputar Reverse Engineering mulai dari pengertian, fungsi, contoh, tahapan & tools yang digunakan untuk Reverse Engineering. Untuk kalian yang ingin memperjalari reverse engineering adalah langkah pertama yang cocok bagi semua orang yang ingin memulai memperbaiki atau mengikatkan produk yang ada, mempelajari teknologi yang digunakan dalam produk tersebut atau produk serupa. Tetapi, alangkah baiknya kalau kita perlu mencari sesuatu yang mudah dipahami terlebih dahulu. Nantikan artikel menarik lainnya dan jangan lupa share artikel ini ke teman-teman kalian Terimakasih…