
Belajar Android Dengan Teknik Reverse Engineering
Banyak aplikasi-aplikasi bagus di pasaran (read: android market) dan saya penasaran, bagaimana mereka bisa membuat itu. Teknik apa yang dipergunakan. Sering kali, sebelum mencoba melakukan replika fitur-fitur spesifik dari suatu aplikasi, dengan membuatnya sendiri. Buat project baru, buat satu-dua view hanya untuk tujuan meniru fitur tersebut. Kalau sudah berhasil? ya sudah, case close. Kalau tidak berhasil juga, lalu bagaimana?
Nah, disitu indahnya dunia engineering. Kalau kesulitan, tinggal di reverse engineer saja aplikasi tersebut. Dari apk, kembali menjadi file2 resource, kode-kode xml untuk layout, dll. Termasuk juga file2 java yang sudah di ubah menjadi byte-code, kembali menjadi file java yang human readable.
Lalu, caranya bagaimana? ternyata cukup mudah. Yang dibutuhkan, hanya kombinasi apktool, dex2jar, dan jd-gui. Kegunaan dari masing-masing tool tersebut adalah:
- apktool digunakan untuk mengembalikan file-file resources, kode xml untuk layout, dll menjadi file yang bisa dibaca.
- dex2jar digunakan untuk mengubah file apk menjadi file jar.
- jd-gui berguna untuk membaca file jar tersebut ke dalam format *.java.
- apktool: apktool-install-windows-2.2_r01-3.tar.bz2 (untuk proses instalasi di windows) dan apktool1.3.2.tar.bz2 (ini file apktool-nya)
- dex2jar: dex2jar-0.0.7.9-SNAPSHOT.zip
- JD-Gui: jd-gui-0.3.3.windows.zip
Nah, untuk step-step berikutnya, silahkan ikuti langkah berikut:
dex2jar.bat namafile.apk
. Proses ini akan menghasilkan file bernama namafile.apk.dex2jar.jarjd-gui namafile.apk.dex2jar.jar
. Aplikasi jd-gui ini akan membuka satu window yang akan menampilkan struktur folder java yang sedang anda cek. Sampai di sini, anda sudah bisa melihat kode-kode java yang ada.
apktool.bat decode namafile.apk direktori_hasil |
--force
atau ganti direktori_hasil dengan yang lain. Opsi --force
ini digunakan untuk memaksa apktool.bat menimpa apapun isi yang ada didalamnya. Sehingga, perintahnya menjadi:apktool.bat decode --force namafile.apk direktori_hasil |

