Decompile APK Menggunakan JADX

Reverse Engineering adalah proses membongkar suatu aplikasi untuk mempelajari cara kerja system tersebut. Metode dan trik yang digunakan akan bergantung kepada target, sehingga cara reversing aplikasi mobile akan berbeda ketika reversing aplikasi desktop.
Salah satu aktivitas yang sering dilakukan di dalam Reverse Engineering adalah Decompile. Decompile adalah proses mendapatkan kembali source code dari aplikasi yang sudah terkompilasi.
Tulisan ini akan membahas proses Decompile pada aplikasi Android (APK).
Proses decompile APK terdapat beberapa tahapan, seperti di diagram di bawah ini:

Seperti diagram di atas, diperlukan beberapa proses untuk melakukan Reverse Engineering pada Android Package / APK. Mulai dari APK yang di extract menggunakan winRAR atau aplikasi sejenis, hasil extract di disassembly kemudian di decompile sehingga menghasilkan class file, kemudian dibaca menggunakan java decompiler seperti JD-GUI.
Namun pada kesempatan ini saya tidak akan menjelaskan secara detail masing-masing proses di atas, karena sekarang saya akan membahas bagaimana melakukan decompile APK menggunakan JADX.
JADX adalah suatu tools yang dapat membuat proses Reverse Engineering menjadi lebih mudah karena beberapa langkah yang saya jabarkan di atas akan otomatis di lakukan oleh tools ini.
Instalasi JADX
Pertama-tama unduh lastest release JADX dari halaman resmi nya
Atau jika kamu menggunakan Mac OS, kamu bisa menginstall nya menggunakan brew dengan command
brew install jadx
Tunggu hingga pengunduhan selesai dan aplikasi siap untuk di gunakan.
Penggunaan JADX
Untuk penggunaan JADX cukup dengan menjalankan JADX GUI baik melalui terminal atau dengan menjalankan EXE jika menggunakan windows. Sebagai contoh berikut, saya akan memperlihatkan penggunakan JADX di Mac OS
Pertama, jalankan jadx-gui melalui terminal

Kemudian akan muncul tampilan seperti di bawah

Kemudian tinggal kita pilih APK yang ingin di decompile lalu akan muncul tampilan seperti ini

Seperti gambar di atas, kita dapat melihat seluruh source code dari sebuah APK. Contoh di atas adalah directory list dari Android Native menggunakan java. Di kesempatan berikutnya saya akan menjelaskan tentang susunan directory di aplikasi android beserta masing-masing fungsi nya.
Terima Kasih.

