Pengertian Reverse Engineering Insyur terbalik atau dalam Bahasa Inggris-nya “Reverse Engineering” adalah suatu teknik yang banyak digunakan oleh hacker dan cracker crack er untuk menembus suatu program ataupun sistem yang terkunci. Misalnya saja, suatu program yang mempunyai aktivasi key, ataupun program trial. Reverse engineering dapat didefinisikan sebaga i 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 hany a minimal untuk program lama, bisa dilakukan c. Menciptakan program terstruktur dari program tak terstruktur atau ko de 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 mengakibatka n 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 nonsilindris 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 memung kinkan 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.