Assalamualaikum wr.wb
Pada kesempatan kali ini saya akan sedikit
membahas tentang REVERSE ENGINERING dalam bahasa program atau perangkat
lunak lebih tepatnya. Oke langsung saja, REVERSE ENGINERING sendiri
dapat di devinisikan sebagai proses untuk menemukan prinsip-prinsip
teknologi perangkat, objek, atau sistem melalui analisis struktur,
fungsi, dan operasi. REVERSE ENGINERING sering melibatkan atau mengambil
sesuatu (misalnya, perangkat mekanik, komponen elektronik, program
perangkat lunak, atau biologis, kimia, atau bahan organik) terpisah dan
menganalisis sistem kerjanya secara rinci untuk digunakan dalam
perawatan, atau mencoba untuk membuat perangkat baru atau program yang
melakukan hal yang sama tanpa menggunakan atau hanya duplikasi (tanpa
pemahaman) yang asli. Ini hanya devinisi secara singkat, lebih jelasnya
baca di
Wikipedia.REVERSE
ENGINERING dalam perangkat lunak sendiri sangat erat hubungannya dengan
virus dan juga cracking program, proses bagaimana kita bisa mengetahui
algoritma program (atau source codenya jika mungkin). Ada banyak hal
yang bisa dilakukan dengan reverse engineering. Dalam kasus virus, kita
bisa menganalisis virus dan membuat anti yang tepat. Ada banyak hal yang
bisa dilakukan dengan reverse engineering. Dalam kasus virus, kita
bisa menganalisis virus dan membuat anti yang tepat. Dalam kasus
proteksi program, kita akan bisa membongkar proteksi seperti serial
number dan expiration date. Dalam kasus kehilangan source code, kita
bisa mengembalikan sebagian kode yang hilang. Jika kita ingin membuat
program yang bisa membaca format program lain, kita juga perlu
mereverse engineer jika format tersebut tidak dibuka secara umum.
Mengenai program/tools untuk reverse engineering, ada banyak yang bisa digunakan. Saya akan memberikan beberapa petunjuk:
IDA Pro dan
OllyDbg.
ua tools tersebut hanyalah beberapa dari banyak tools yang bisa
digunakan. Jangan berfokus pada tool berfokuslah pada skill. Kebanyakan
orang menanyakan apa program yang perlu dikuasai untuk melakukan X dan
berfokus pada program X tersebut. Ada program yang dapat digunakan
untuk membongkar program dalam bahasa tertentu. Contoh: program java
yang tidak di-obfuscate bisa dibongkar dengan
jad
dengan mudah. Program serupa juga tersedia untuk .NET, dan aneka
bahasa lain yang menggunakan bytecode. Namun program Java bisa
diproteksi dengan
obfuscator,
jadi tidak semua semudah itu. Untuk menemukan aneka tools reverse
engineering, gunakanlah Google dan telusuri aneka link di Wikipedia.
Bahasa Inggris wajib Anda kuasai untuk membaca aneka tutorial yang ada
di Internet.
Kerumitan sebuah program biasanya adalah karena
programmer menggunakan berbagai macam cara untuk melindungi programnya.
Misalnya dalam kasus program yang memiliki batas waktu N hari. Program
pasti harus menyimpan fakta bahwa program pernah diinstall pada
tanggal tertentu. Jika Anda seorang programmer yang membuat program di
Windows, maka Anda akan segera terpikir di beberapa tempat, misalnya di
Registry Windows, di direktori program itu sendiri, di direktori
sistem Windows, dan di berbagai tempat lain (misalnya di Serial Number
sementara). Tidak ada satu tempat pasti yang digunakan. Ini sama saja
dengan menanyakan di mana seseorang menaruh dokumen pentingnya, setiap
orang akan memiliki tempatnya sendiri (mungkin sebagian besar
menaruhnya di lemari atau di brankas besi di rumahnya, tapi ada juga
yang menyimpannya di bank). Masalahnya juga akan berbeda di tiap OS, di
Linux tidak ada registry, sedangkan di Symbian ada direktori tertentu
yang hanya bisa diakses oleh program tertentu dan lebih mudah digunakan
untuk menyimpan informasi tersebut (yang tidak bisa diakses kecuali
dengan exploit tertentu, misalnya AppTRK.
Sulit
mencari analogi yang tepat untuk reverse engineering. Reverse
engineering itu seperti arkeolog yang berusaha mendekripsi
tulisan-tulisan kuno. Anda perlu bisa membuka situs kuno, dan mencari
tulisan yang mungkin tersembunyi. Anda juga harus mengenal aneka macam
tulisan kuno di dunia ini sebagai dasar untuk membaca tulisan yang Anda
temui. Anda perlu tahu kebudayaan kuno untuk mengetahui jalan pikiran
mereka.
Pikirkan juga baik-baik: apa sih gunanya hacking atau reverse
engineering? pikirkan apakah Anda memang berbakat di bidang itu,
pikirkan juga apakah itu yang Anda inginkan di masa depan Anda. Pikirkan
juga masalah moral hacking dan reverse engineering. Pikirkan misalnya
apakah pacar Anda akan memutuskan Anda kalau dulu tahu bahwa pada masa
PDKT Anda sering mengakses emailnya tanpa sepengetahuannya.
Sekian, wassalam..