REVERSE ENGINEERING

Rifqi Muhammad Rizqullah
6 min readJun 2, 2021

--

Reverse Engineering — Rekayasa Balik

Reverse engineering atau rekayasa balik merupakan proses menduplikasi komponen, subassembly, atau produk yang ada tanpa bantuan gambar, dokumentasi atau model komputer. selain itu, rekayasa balik adalah sebuah proses yang bertujuan untuk menemukan prinsip suatu teknologi dari suatu perangkat, objek atau sistem melalui analisis strukturnya. Proses ini melibatkan pemisahan dan analisis terhadap cara kerja suatu objek atau sistem secara detail. rekayasa balik atau reverse engineering biasanya menggunakan objek buatan manusia untuk ditelaah.

Reverse enggineering biasanya diterapkan pada perangkat lunak (software) untuk menggantikan dokumentasi yang salah, tidak lengkap, atau belum tersedia.

Contoh masalah yang dapat diatasi dengan reverse engineering adalah jika kita baru saja menyelesaikan sebuah program perangkat lunak. program kita bejralan dengan baik tanpa ada masalah tapi tanpa disengaja file dokumentasi dari program yang sudah kita buat hilang atau terhapus, Lalu bagaimana cara agar kita mendapatkan kembali file dokumentasi tersebut?

Dengan reverse engineering kita dapat mendapatkan kembali file dokumentasi yang hilang tersebut. Bagaimana caranya?? Reverse engineering bekerja secara mundur dari sebuah program yang dibuat oleh pembuatnya untuk menentukan desain dan teknologi apa saja yang digunakan oleh pembuat program untuk mengembangkan programnya.

Reverse engineering meliputi setiap aktivitas yang dilakukan untuk menentukan bagai mana suatu program bekerja dan mempelajari ide-ide dan teknologi yang digunakan dalam mengembangkan program tersebut. Reverse engineering dapat dilakukan di banyak tingkatan atau level abstraksi. Umumnya reverse engineering digunakan untuk pemeliharaan perangkat lunak (software).

Reverse engineering merupakan kebalikan dari forward engineering. berikut adalah perbedaan reverse engineering dan forward engineering menggunakan model waterfal:

perbedaan reverse engineering dan forward engineering

Forward Engineering — Rekayasa Maju

waterfall model

Pada model forward engineering pengembangan perangkat lunak menggunakan model waterfall dimulai pada tahap requirements, pada tahap requirements ini pengembang harus memahami dan mengetahui bagaimana kebutuhan pengguna terhadap sebuah perangkat lunak (software)

Selanjutnya pada tahap design ini, informasi yang sudah didapatkan pada proses sebelumnya diimplementasikan pada desain pengembangan. Perancangan design ini bertujuan untuk membarikan gambaran lengkap mengenai apa yang harus dikerjakan.

Tahap implementation merupakan tahap pemrograman. Pembuatan perangkat lunak dibagi menjadi modul-modul kecil yang nantinya akan digabungkan dalam tahap berikutnya. Disamping itu, pada fase ini juga dilakukan pengujian dan pemeriksaan terhadap fungsionalitas modul yang sudah dibuat, apakah sudah memenuhi kriteria yang diinginkan atau belum. tahap implementasi selanjutnya diintegrasikan dalam sistem secara keseluruhan. Setelah proses integrasi selesai, selanjutnya dilakukan pemeriksaan dan pengujian sistem secara keseluruhan untuk mengidentifikasi kemungkinan adanya kegagalan dan kesalahan sistem.

Pada tahap terakhir dalam Metode Waterfall, perangkat lunak yang sudah jadi dioperasikan pengguna dan dilakukan pemeliharaan. Pemeliharaan memungkinkan pengembang untuk melakukan perbaikan atas kesalahan yang tidak terdeteksi pada tahap-tahap sebelumnya. Pemeliharaan meliputi perbaikan kesalaha, perabikan implementasi unit sistem, dan peningkatan dan penyesuaian sistem sesuai dengan kebutuhan

Pada reverse engineering dilakukan sebaliknya dari tahap fordward engineering, sehingga dapat melengkapi, memperbaiki dokumentasi yang kurang lengkap atau hilang pada saat proses pengembangan perangkat lunak.

Lalu mengapa kita membutuhkan reverse engineering?

  1. untuk melakukan pemulihan terhadap informasi yang hilang didalam dokumentasi
  2. menyediakan sistem dokumentasi yang tepat
  3. membantu pemeliharaan
  4. mengindentifikasi efek samping dan anomali
  5. memfasilitasi penggunaan kembali perangkat lunak

kesulitan yang dihadapi saat reverse engineering :

  1. kesenjangan domain masalah dan solusinya
  2. kesenjangan kongkret dan abstrak
  3. disinteegrasi

ruang lingkup dan tugas reverse engineering :

  1. dokumentasi ulang atau pembuatan dokumen
  2. pemulihan desain dan detail desain pada tingkat abstraksi apa pun
  3. identifikasi komponen yang dapat digunakan kembali dan komponen yang perlu direstruktur
  4. memulihkan aturan bisnis.

alat reverse engineering :

  1. analysis tools
  2. browser
  3. server objek
  4. task oriented tools

Jadi reverse engineering meliputi kegiatan yang memahami sistem dan digunakan untuk memulihkan informasi dari sistem menggunakan pemahaman program. pemahaman program adalah bagian terpenting dari reverse engineering agar mendapatkan informasi yang kongkret dari suatu perangkat lunak. reverse engineering juga merupakan salah satu metode pemeliharaan perangkat lunak. selain itu reverse engineering juga memiliki keterkaitan dengan sistem keamanan perangkat lunak, karena dengan reverse engineering kita dapat mengambil informasi secara ilegal maupun legal dari sebuah perangkat lunak yang dikembangkan oleh pengembang.

Berikut ini merupakan beberapa pekerjaan reverse engineering yang legal

Pekerjaan reverse engineering legal biasanya di bidang keamanan software, meskipun tidak selalu.

Ada beberapa pekerjaan yang berhubungan dengan reverse engineering:

  • Reversing virus/malware. Kerjanya membongkar berbagai malware/virus baru tiap hari.
  • Mencari bug di software dan membuat exploit untuk software tersebut.
  • Mencari bug di hardware dan membuat exploit untuk hardware tersebut.
  • Memberikan training. Banyak perusahaan mulai memperhatikan masalah security, jadi para engineer diharapkan bisa membongkar sendiri hasil kerja mereka apakah aman atau tidak.
  • Pentesting aplikasi (baik resmi ataupun untuk bug bounty).
  • Rekonstruksi program berdasarkan program lama yang source codenya hilang.

Saat ini kebanyakan pekerjaan legal seperti ini lebih mudah didapatkan dari luar Indonesia karena belum terlalu banyak riset security tingkat lanjut di Indonesia. Negara paling dekat yang membutuhkan banyak reverse engineer adalah Singapura.

Dengan jalan legal, gaji yang didapatkan bisa cukup banyak. Semakin tinggi skillnya, makin besar yang bisa didapatkan. Gaji terendah sudah setara dengan gaji programmer level menengah.

Untuk kasus yang sangat ekstrim, jika sudah sangat jago reverse engineering maka bisa menemukan dan membuat eksploit zero day yang harga per eksploitnya puluhan ribu hingga ratusan ribu USD. Bahkan exploit untuk iOS bisa dihargai hingga 1 juta USD.

Lalu bagaimana dengan kegiatan reverse engineering yang ilegal?

Dengan reverse engineering banyak hal ilegal yang dapat dilakukan seseorang seperti :

  1. Cracking aplikasi

Contoh dari cracking aplikasi salah satunya adalah dengan menghilangkan proteksi sebuah perangkat lunak seperti kasus spotify crack sehingga kita dapat menggunakan aplikasi spotify dengan fitur lengkap tanpa membayar kepada spotify (gratis).

2. Hacking game atau modifikasi

Banyak sekali kasus hacking game yang dilakukan oleh pemain game seperti melakukan cheating dengan memodifikasi game agar dapat bermain dengan mudah. dari hasil modifikasi (cheat) seorang pemain game dapat melakukan kecurangan di dalam game seperti auto aim (digame fps) atau bahkan melakukan peretasan terhadap akun pemain lain yang sangat merugikan.

3. hacking aplikasi untuk mengubah atau menambah fungsi fitur

contoh kasusnya terjadi di game terkenal yaitu pokemon go, pada dasarnya semua pemain pokemon go harus berjalan sesuai dengan jarak yang sudah ditentukan untuk mendapatkan pokemon atau menetaskan telur. tetapi dengan menggunakan aplikasi GPS (fake GPS) yang telas ditambah fiturnya, para pemain dapat melakukan hal tersebut tanpa keluar rumah. ini tentu saja merupakan kegiantan ilegal dan termasuk kedalah cheating didalam game tersebut sehingga banyak sekali akun pemain yang dibanned (dihapus) karena melakukan kegiatan illegal tersebut.

Contoh lain dari reverse engineering yang ilegal adalah tidak hanya melakukan kecurangan didalam game atau sebuah aplikasi, tetapi dengan reverse engineering para pelaku ilegal (hacker) dapat mencuri data pengguna sebuah game atau aplikasi. sepetri kasus yang pernah terjadi di game PUBG, seorang hacker tertangkap meretas data pemain PUBG dan langsung mendapatkan hukuman denda sebesar 5.1 juta dollar AS.

Reverse engineering ini memiliki kelebihan yang dapat digunakan untuk hal yang legal dan ilegal. Tergantung dari tujuan orang yang menggunakan reverse engineering tersebut. namun alangkah baik jiga kita menggunakan reverse engineering untuk hal yang bermanfaat dan tidak merugikan orang lain. Gunakan reverse engineering sebagai alat untuk meningkatkan skill serta nilai jual untuk menghadapi dunia kerja.

10118372 — Rifqi Muhammad Rizqullah

Program Studi Teknik Informatika

Fakultas Teknik dan Ilmu Komputer

Universitas Komputer Indonesia

Referensi :

Thayer, Ken. “How Does Reverse Engineering Work?”. globalspec. IEEE Global Spec. Retrieved 26 February 2018.

https://insights.globalspec.com/article/7367/how-does-reverse-engineering-work

--

--

Rifqi Muhammad Rizqullah
Rifqi Muhammad Rizqullah

Written by Rifqi Muhammad Rizqullah

Mahasiswa Program Studi Teknik Informatika Universitas Komputer Indonesia

No responses yet