Decompile Android APK/DEX Lebih Mudah Dengan JADX

APK Rerve Engineering Progress

Bagi rekan-rekan yang berkecimpung dalam dunia Reverse Engineering mungkin sudah tidak asing dengan istilah decompiler ataupun proses decompile. Secara simpelnya, proses decompile adalah sebuah proses yang melakukan pembongkaran terhadap suatu aplikasi untuk mendapatkan source code agar bisa dibaca/dipahami, sedangkan untuk decompiler sendiri merupakan sebuah alat yang dipakai dalam proses decompile.

Dalam proses pembongkaran android package, diperlukan beberapa proses seperti berikut:

APK Reverse Engineering Progress
APK Reverse Engineering Progress

 

Pada diagram tersebut, diperlukan beberapa proses dalam reverse engineering sebuah apk. Dimulai dengan membongkar APK itu sendiri karena APK bersifat archive yang bisa kita extract dengan tool archive extractor semacam rar dan lain sebagainya. Lalu berkas dex tersebut disassembly dan didecompile menjadi java source yang masih merupakan class file. Source code tersebut bisa dibaca menggunakan java decompiler seperti JD-GUI.

Oh iya, saya pernah bahas soal Java Bytecodes Decompiler dengan Procyon pada tulisan ini https://petruknisme.com/2017/04/08/procyon-powerful-java-bytecode-decompiler/

Oke, sesuai dengan judul pada tulisan kali ini, saya akan membahas JADX. Sebuah tool yang saya pikir membuat proses reverse engineering sebuah apk menjadi lebih mudah karena beberapa step yang saya jelaskan diatas sudah otomatis dilakukan oleh JADX. Jadi kita hanya perlu memberikan sebuah berkas apk yang akan didecompile saja.

Instalasi JADX

JADX sendiri masih bertahan pada versi v0.6.1 untuk stable, dan untuk unstable build atau bleeding edge langsung melalui github sudah mencapai versi v0.7.0-xxx. Unduh JADX pada laman https://github.com/skylot/jadx/releases

Setelahnya lakukan unzip terhadap berkas tersebut

Bagi pengguna Archlinux/Blackarch, cukup menggunakan command berikut untuk instalasi jadx:

Perlu diingat bahwa JADX ini cross-platform, jadi bisa jalan pada sistem operasi windows, linux dan *NIX selama java sudah terpasang.

Menjalankan JADX

Untuk menjalankan jadx, cukup dengan menjalankan jadx-gui ataupun jadx yang ada didalam direktori bin. Bagi pengguna Archlinux, cukup dengan:

Maka akan muncul dialog untuk open file seperti pada gambar berikut:

Jadx Open File
Jadx Open File

Misal pada contoh tulisan kali ini saya menggunakan APK dari Plants vs Zombie 2. Jadx akan melakukan proses decompiling terlebih dahulu, biasanya agak memakan banyak memory(java :p)

Proses Decompile JADX
Proses Decompile JADX

Nah seperti ini hasil dari decompile ketika selesai:

JADX setelah decompile
JADX setelah decompile

jadx juga menyediakan untuk androidmanifest dan resource yang ada dalam apk.

JADX Resource Manifest
JADX Resource Manifest

Bagaimana? Mudah kan? 🙂 Tapi, perlu diingat bahwa setiap tool pasti memiliki kelemahan dan kekurangan, nantinya kita sendiri yang menentukan mana tool terbaik untuk kondisi yang sedang dialami hehe

Akhir kata, semoga tulisan ini bermanfaat.

Aan Wahyu

Aan Wahyu

Hanya seorang penyuka Wayang( Terutama Wayang Golek) dan penggiat Open Source serta penikmat dan pembuat puisi. Saat ini memakai distro Arch Linux sebagai OS yang digunakan untuk kebutuhan sehari-hari. Founder dari Sinau Development. Tertarik dengan Research Development dan Non-Profit Organization yang bersifat Open Source dan juga sebagai kontributor di RumahVOIP serta Indonesian Research and Development Center( RNDC ) dan aktif juga diforum Open Source lainnya.
Aan Wahyu