Obfuscator

13 08 2009
Obfuscate berasal dari transitive verb yang berarti darken, to make obscure atau confuse. Dalam terminasi software engineering, obfuscation adalah “the deliberate act of nondestructively changing either the source code of a computer program or machine code when the program is in some compiled or binary form, so that it is not easy to understand or read.” Code obfuscation merupakan proses untuk melakukan obcuring pada java class agar sulit untuk di decompile menjadi source kembali (reverse engineer).

Karena sebuah mobile aplication akan di porting dan di delivery pada berbagai jenis dan jumlah handset, dapat disimpulkan manfaat utama dari obfuscation antara lain pada aspek application size, to improve performance, footprint reduction, dan protection for intellectual property / security. obfuscation pada dasarnya melakukan penamaan ulang untuk class, methode dan variable, dll dengan penamaan lebih pendek, menghilangkan comment atau informasi debugging. Beberapa obfuscator juga mengimplementasikan optimisasi pada bytecode (byte code transforming) dan beberapa teknik shrinking lain. Beberapa open source obfuscator yang sering digunakan antara lain ProGuard dan RetroGuard.

Beberapa IDE juga sudah didistribusikan dengan obfuscator seperti Netbeans IDE dengan mobility pack nya yang telah di bundled dengan Proguard Obfuscator. Sun WTK dan Eclipse IDE juga mendukung third-party obfuscation namun harus dispesifikasikan dalam proses deployment. Developer juga dapat mengganti obfuscator atau menambahkan langkah obfuscation pada cript Ant.

Berikut salah satu contoh cara untuk memasukan Obfuscator pada Netbeans IDE (pada contoh ini, menggunakan Netbeans IDE 6.5 dan ProGuard 4.3) :
1. Download ProGuard obfuscator dari http://proguard.sourceforge.net/.
2. Untar atau unzip file tersebut
3. Masukan ProGuard obfuscator jar pada directory netbeans, contoh : C:\Program Files\NetBeans 6.5\mobility8\external\ (langkah ini bisa di skip)
4. Buka Netbeans IDE, pilih Tools –> Libraries, dan Library Manager akan muncul
5. Pilih Progruard Obfuscator pada Class Library folder –> pada Classpath pilih Add JAR/Folder, dan Form untuk memilih Obfuscator Registry akan muncul
6. Defenisikan lokasi tempat JAR obfuscator yang akan digunakan –> Ok, path dari JAR file tersebut akan tampak pada Library classpath tersebut
7. Simpan perubahan pada Libray Manager dengan tombol OK

Untuk menggunakan obfuscator tersebut pada proses deployment :
1. Klik kanan pada nama project –> pilih Properties
2. Pilih Obfuscating –> dan lakukan adjustment pada bar Obfuscation Level (1-9) sesuai dengan spesifikasi project yang diinginkan pada hasil deployment. Pada level tertentu, developer akan diminta untuk memasukan additional obfuscation level.
3. Tekan Ok untuk menyimpan perubahan property project dan obfuscator akan otomatis digunakan oleh IDE pada saat proses deployment.

Sangat disarankan untuk melakukan testing pada hasil deployment dari obfuscator ini, karena pada lobfuscation level tertentu, model logic tertentu, penggunaan API tertentu, dan handset tertentu, JAR hasil deployment oleh obfuscator tidak dapat dijalankan. okay, happy coding dan selamat mencoba !!

another article as advance read can be found at http://www.devx.com/wireless/Article/28989/0/page/2

Advertisements

Actions

Information

One response

30 01 2010
Agung

Asslmkm, mas mw tny kalo obfuscation dgn Proguard dari netbeans 6.8 apakah akan membuat file jar yg kita buat tdk bisa didekompilasi dgn JAD(java decompiler) krn saya prnh buat library.jar lalu diekstrak orang dan class2nya bisa didekompile shg logik program saya bisa dicontek orang… mohon cara konfig dan pencerahannya ya, thanks, bs via email hehehe

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s




%d bloggers like this: