Anda di halaman 1dari 5

Pengertian Reverse Engineering

Insyur terbalik atau dalam Bahasa Inggris-nya “Reverse Engineering” adalah suatu teknik yang
banyak digunakan oleh hacker dan cracker untuk menembus suatu program ataupun sistem yang
terkunci. Misalnya saja, suatu program yang mempunyai aktivasi key, ataupun program trial.

Reverse engineering dapat didefinisikan sebagai segala aktifitas dalam mempelajari cara kerja
suatu produk atau mempelajari ide-ide ataupun teknologi dalam mengembangkan suatu produk.

SOFTWARE REVERSE EGINEERING

Reverse engineering sebenarnya memiliki beberapa jenis/macam, tapi karena yang dibicaran
adalah tentang informatika :), maka yang akan saya bicarakan adalah tentang software reverse
engineering. Pengertian dari software reverse engineering hampir sama dengan pengertian
umunya, tapi khusus untuk software reverse engineering, mungkin sedikit berbeda
pengertiannya. Dapat dikatakan bahwa software reverse engineering adalah:

1. Membangun tool yang dibangun sendiri untuk mengidentifikasi suatu proteksi perangkat
lunak(contohnya saja membuat keygen).
2. Menemukan suatu source code ‘yang hilang’ dari suatu program.(menemukan source
code yang mempunyai algoritma yang penting dari suatu program misalnya).
3. Mengidentifikasi dan mengerti bagaimana suatu fungsi(source code/algoritma)
diimplementasikan pada sebuah system(program).
4. Melakukan debug untuk menemukan error.
5. Melakukan analisis pada program yang menyebabkan kerugian.

Ada banyak sekali alasan menggunakan reverse engineering(manfaat dari reverse engineering),
diantaranya adalah:

1. sebagai alat pembelajaran


2. untuk dapat membuat produk baru yang lebih kompatible dan lebih murah
3. membuat suatu perangkat lunak lebih efektif dan menjembatani berbagai macam sistem
operasi atau database.
4. menguak fitur yang tidak terkoordinasi(tidak teratur) dalam suatu produk komersial.

Beberapa manfaat yang saya ketahui dari reverse engineering adalah untuk pembuatan antivirus.
Antivirus dibuat dengan metode reverse engineering karena kita ketahui, virus(dan variannya)
adalah suatu program. Namun, virus bekerja secara mandiri dan sangat merugikan. Untuk dapat
mengatasinya, diperlukan suatu cara khusus untuk mempelajari bagaimana virus itu bekerja,
bagaimana sifat-sifatnya serta seberapa bahaya akibat yang ditimbulkan oleh virus tersebut. Di
sinilah metode reverse engineering diperlukan. Seorang pembuat antivirus harus mempelajarinya
sehingga ia dapat membuat suatu antivirus yang dapat melawan dan mendeteksi apakah suatu
program itu virus atau bukan. Karena kita tahu bahwa virus dapat melakukan
stealth(menyembunyikan diri) dan meniru (ekstensi) dari program-program lain yang sangat
menyulitkan orang awam untuk membedakannya.

Manfaat lain dari reverse engineering adalah untuk membuat software crakck. Software crack
membutuhkan metode reverse engineering karena software crack dibuat dengan me-diasembler
suatu program dan mempelajari alur bagaimana program itu berjalan. Jika seorang software
cracker mengetahui bagaimana alur suatu program berjalan, maka ia dapat menentukan alur
mana yang membuat program itu diblok(oleh pabrikan software), dan mengganti source
codenya(dalam bentuk binary/hexa biasanya) dan mengkompilenya kembali. Jadilah suatu
program yang sudah dicrack.

Reverse engineering rasanya agak sedikit diperdebatkan karena kita lihat seperti contoh di atas
tadi, reverse engineering digunakan untuk membuat software(crack), yang tentunya akan
merugikan produsen software tersebut. Namun, karena manfaat yang didapat reverse engineering
juga tidak sedikit, maka reverse engineering tetap dapat dilegalkan dengan aturan-aturan tertentu.

 
Reverse engineering adalah sebuah proses untuk mencari dan menemukan teknologi yang bekerja di 
balik suatu sistem, perangkat atau objek, melalui sebuah proses analisa mendalam pada struktur, fungsi 
dan cara kerja dari sistem, perangkat atau objek yang di teliti. Secara singkat dapat disimpulkan bahwa 
reverse engineering adalah sebuah proses peng ekstrakan informasi yang ada pada sebuah sistem.  
 
    Di dalam dunia IT, reverse engineering terkait erat dengan software atau aplikasi yang berjalan pada 
sebuah sistem. Proses reverse engineering pada sebuah software juga sering di sebut dengan istilah RCE 
atau Reverse Code Engineering. Biasanya proses RCS bisa delakukan dengan beberapa cara, yaitu:  
 
Disassembly 
Disassembly adalah proses melihat kembali bahasa mesin dari aplikasi atau file, pada dasarnya 
komputer melakukan pembacaan sebuah aplikasi atau file menggunakan bahasa mesin atau bahasa 
level rendah (Low Level Language), yang biasanya adalah bahasa assembly. Bahasa assembly sendiri 
adalah bahasa terrendah pada siklus bahasa pemrograman sistem, semua proses software yang di 
eksekusi oleh komputer pada akhirnya akan di eksekusi menggunakan bahasa assembly meskipun 
software tersebut dibuat menggunakan bahasa level tinggi (High Level Language) seperti VB, Pascal, 
C/C++ dll, hal ini yang membuat bahasa assembly menjadi bahasa yang penting dalam proses reverse 
code engineering. 
 
Decompile 
Berbeda dengan proses desaassembly, pada proses decompile, software atau aplikasi akan dibaca dalam 
bentuk mendekati bahasa asal ketika aplikasi di buat, walaupun terkadang hasil proses decompile juga 
akan terdapat beberapa penggunaan bahasa assembly di dalamnya. Namun secara umum, hasil yang 
akan dimunculkan akan menghasilkan sintaks yang menggunakan bahasa yang di gunakan untuk 
membangun aplikasi atau software yang di decompile, hasil yang muncul adalah source code yang 
mendekati struktur asli dari aplikasi dalam bentuk bahasa java, misal kita dapat mengetahui fungsi‐
fungsi yang ada atau variabel yang di gunakan. 
 
Alasan Melakukan Reverse Code Engineering 
    Ada banyak alasan mengapa seseorang atau organisasi melakukan reverse engineering. Beberapa 
alasan yang paling sering muncul di dalam duniaIT adalah: 
* Pembuatan ulang dokumentasi, apabila dokumentasi dari sebuah aplikasi hilang 
* Cracking, atau pembajakan aplikasi 
* Audit keamanan 
* Mempelajari aplikasi malware, untuk kepentingan antisipasi serangan 
* Analisa produk 
* Mencari data sensitif pada sebuah sistem 
* Keperluan militer, seperti mata‐mata menggunakan software. ^_^ 

 
Kuis Reverse Engineering

1. Jelaskan pengertian reverse engineering


2. Apa keuntungan dan kerugian dari reverse engineering?
3. Cari contoh aplikasi nyata reverse engineering dalam perancangan produk!

Jawaban
1. reverse engineering adalah Sebuah metodologi sistematis untuk menganalisis desainperangkat
yang ada atau sistem, baik sebagai sebuah pendekatanuntuk mempelajari desain atau sebagai
prasyarat untuk re-desain.

2. Mempunyai beberapa keuntungan sebagai berikut:


a. Waktu yang digunakan dalam pemeliharaan sistem bisa dikurangi
b. Dokumentasi, yang sebelumnya belum ada atau hanya minimal untuk program
lama, bisa dilakukan
c. Menciptakan program terstruktur dari program tak terstruktur atau kode komputer terstruktur
yang tidak tepat
d. Perubahan-perubahan yang terjadi dalam pemeliharaan di masa datang lebih mudah dibuat
e. Analisis bisa ditampilkan atas sistem untuk mengurangi bagian yang tidak perlu dari kode
komputer
Kerugian Reverse Engineering
a. Masalah kepemilikan. Suatu pihak dapat menyalin karya asli dan mengaku karya tersebut
sebagai miliknya. Pemilik asli tidak dapat memberikan bantahan karena tidak ada bukti yang
otentik menandakan kepemilikan.
b. Pelanggaran copyright. Merupakan penyalinan yang tidak berijin sehingga mengakibatkan
kerugian dari pencipta karya karena tidak diperolehnya royalti apapun dari penggandaan
tersebut.
c. Masalah keaslian. Karya digital dapat dengan mudah diubah, sehingga dapat menyebabkan
hilangnya atau berubahnya data-data yang penting dari sebuah karya.

3. Dalam penelitian yang dilakukan, perhiasan yang hendak didesain terbuat dari logam berharga
seperti emas, perak atau perunggu. Selain itu, jenis perhiasan yang hendak didesain mempunyai
bentuk dasar berupa non-silindris. Kemudian, proses pembuatan yang dapat digunakan dalam
proses pembuatan prototipnya adalah dengan proses manual, engraving, dan milling dan
ditambah proses akhir berupa polishing, dipalu atau disikat. Bentuk desain perhiasan yang
hendak diteliti dibagi menjadi tiga macam yaitu bentuk dasar non-silindris dengan elemen
cembung, bentuk dasar non-silindris dengan elemen cekung, Prosiding dan bentuk dasar non-
silindris dengan kombinasi elemen cembung dan cekung. Desain perhiasan yang baru ini
kemudian dibuat dalam bentuk mock up yang terbuat dari lilin plastisin.
Lilin plastisin dipilih sebagai material mock up karena mudah dibentuk dan tidak mudah rusak
saat proses pemindaian. Selain itu lilin plastisin ini juga memungkinkan proses pemindaian
dengan laser scanner dapat berlangsung dengan baik karena dapat memantulkan Prosiding sinar
yang dipancarkan. Keuntungan lain dari lilin plastisin dibandingkan material mock up yang lain
adalah lilin plastisin dapat digunakan berulang kali sehingga dapat menghemat biaya material.
Mock up ini kemudian diletakkan ke dalam 3D laser scanner merek Roland LPX 600 untuk
mendapatkan informasi data geometri dari mock up berupa point clouds. Untuk proses
selanjutnya, informasi data geometri ini diubah menjadi model computer aided design tiga
dimensi dengan format data STL dengan menggunakan perangkat lunak Dr. Picza3.
Variabel dan nilai yang digunakan dalam pengoperasian 3D laser scanner ini adalah sebagai
berikut :
• Jenis pemindaian adalah rotary scanning
• Height direction pitch sebesar 1 mm
• Circumferensial pitch sebesar 0,9 derajat
Nilai dari variabel ditentukan berdasarkan variabel default yang diatur oleh perangkat lunak Dr.
Picza3. Diasumsikan bahwa nilai variabel ini adalah nilai yang dapat menghasilkan model
computer aided design yang standar. Sedangkan respon yang dicari adalah waktu yang
dibutuhkan dalam memperoleh model computer aided design yang sempurna. Model computer
aided design yang sempurna didefinisikan sebagai model penuh yang tidak mengandung lubang
atau cacat atau sebaliknya yaitu model yang tetap mengandung lubang jika model tersebut adalah
model berlubang. Setelah itu, penelitian ini mencoba menganalisis kesempurnaan model
computer aided design dari desain perhiasan yang dihasilkan dikaitkan dengan waktu yang
dibutuhkan untuk menghasilkan model computer aided design dari mock up. Data hasil analisis
ini kemudian digunakan untuk membuat kesimpulan dan rekomendasi terkait implementasi dari
reverse engineering dalam meningkatkan produktivitas proses desain produk perhiasan.

Anda mungkin juga menyukai