Pengertian Reverse Engineering PDF
Pengertian Reverse Engineering PDF
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.
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:
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
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.
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.