Apakah mungkin untuk mendekompilasi file APK Android?

86

Apakah pengguna dapat mengubah file apk aplikasi saya kembali ke kode sebenarnya? Jika ya - adakah cara untuk mencegahnya?

aryaxt
sumber
1
Ada beberapa metode untuk mendekompilasi APK . Saya hanya APKTool lebih sering, itu yang terbaik dan paling kuat. Sangat mudah untuk memodifikasi file apk dengannya.
Taranfx
Saya telah menulis posting blog di sini: codexplo.wordpress.com/2012/03/15/… tetapi sekali lagi, akan sulit untuk kode yang dikaburkan ...
rokonoid
1
yeblon.com/how-to-decompile-android-apk-app-files - Ini mungkin bersendawa
Badr Hari
3
kemungkinan duplikat dari Apakah ada cara untuk mendapatkan kode sumber dari file APK?
Reaz Murshed

Jawaban:

80

Pertama, file apk hanyalah file jar yang dimodifikasi. Jadi pertanyaan sebenarnya adalah dapatkah mereka mendekompilasi file dex di dalamnya. Jawabannya adalah semacam. Sudah ada disassembler, seperti dedexer dan smali . Anda dapat mengharapkan ini hanya menjadi lebih baik, dan secara teoritis pada akhirnya akan memungkinkan untuk mendekompilasi ke sumber Java yang sebenarnya (setidaknya kadang-kadang). Lihat pertanyaan sebelumnya yang menguraikan DEX menjadi kode sumber Java .

Yang harus Anda ingat adalah kebingungan tidak pernah berhasil. Pilih lisensi yang baik dan lakukan yang terbaik untuk menegakkannya melalui hukum. Jangan buang waktu dengan tindakan teknis yang tidak dapat diandalkan.

Matthew Flaschen
sumber
45
Jangan pernah bilang tidak akan pernah. Kebingungan tidak akan menghentikan pencuri yang gigih tetapi akan memperlambat atau menghalangi banyak pencuri lainnya. Memproses dengan Proguard adalah cara yang mudah dan TERPERCAYA untuk mengaburkan kode Anda dan sebagai bonus, kode itu juga akan dioptimalkan. Dan itu termasuk dalam Android SDK, jadi itu didukung oleh Google.
Barry Fruitman
3
Kebingungan pasti berhasil, tetapi Anda harus lebih jelas menentukan apa tujuan Anda. Jelas satu-satunya cara agar Anda dapat menyimpan kode sumber Anda benar-benar aman adalah dengan tidak pernah memberikan akses siapa pun ke sana, server atau klien. Perhatikan bahwa Proguard tidak berfungsi dengan baik pada kelas yang memiliki referensi dalam file XML. Anda perlu memanfaatkan kebingungan manual untuk menyiasatinya.
MattC
35

Dekompilasi file APK dimungkinkan. Tetapi mungkin sulit untuk memahami kode jika dikaburkan.

ApkTool untuk melihat sumber daya di dalam File APK

  • Ekstrak AndroidManifest.xml dan semua yang ada di folder res (file layout xml, gambar, html yang digunakan di webview dll ..)
  • perintah: apktool.bat d sampleApp.apk
  • CATATAN: Anda dapat mencapai ini dengan menggunakan utilitas zip seperti 7-zip. Tapi, Ini juga mengekstrak file .smali dari semua file .class.

Menggunakan dex2jar

  • Menghasilkan file .jar dari file .apk, kita membutuhkan JD-GUI untuk melihat kode sumber dari .jar ini.
  • perintah: dex2jar sampleApp.apk

Mendekompilasi .jar menggunakan JD-GUI

  • mendekompilasi file .class (di-obfuscated- dalam kasus aplikasi android, tetapi kode asli yang dapat dibaca diperoleh dalam kasus file .jar lainnya). yaitu, kami mendapatkan kembali .java dari aplikasi.
gtiwari333
sumber
apktool tidak memuntahkan file sumber java! Hanya smali
IgorGanapolsky
1
Seperti yang sudah saya katakan di jawaban, apktool membuat .jar dari .apk dan kita harus menggunakan alat seperti JD-GUI untuk mendekompilasi .jar untuk mencapai file sumber .java.
gtiwari333
1
kau benar-benar menyelamatkan hidupku! pos yang luar biasa! Saya kehilangan kode dua hari terakhir karena SSD yang gagal (sayangnya, saya tidak berkomitmen untuk git). Namun, saya memang memiliki apk dan sekarang saya memiliki sumber saya, ingat, sedikit berbeda, tetapi sumber!
Farcrats
3

Saya juga dapat menambahkan, bahwa saat ini dimungkinkan untuk mendekompilasi aplikasi Android secara online, tidak perlu perangkat lunak!

Berikut 2 opsi untuk Anda:

Andrew Rukin
sumber
decompileandroid.com sedang offline (ketika Anda mengunggah apk Anda akan mengalami masalah saat mengunduhnya lagi) dan javadecompilers.com/apk telah menempatkan apk saya dalam antrian untuk waktu yang lama. Saya offline, lalu online, masih dalam antrian. Saya menghapus semua riwayat penelusuran dan sekarang apk yang saya unggah untuk kedua kalinya berada dalam antrean.
iOSAndroidWindowsMobileAppsDev
1

Unduh alat jadx ini https://sourceforge.net/projects/jadx/files/

Unzip dan kemudian di folder lib jalankan file jadx-gui-0.6.1.jar sekarang telusuri file apk Anda. Selesai. Secara otomatis apk akan mendekompilasi dan menyimpannya dengan menekan tombol simpan. Semoga berhasil untuk Anda. Terima kasih

akhilesh Jha
sumber
0

Terkadang Anda mendapatkan kode yang rusak, saat menggunakan dex2jar/ apktool, terutama dalam loop. Untuk menghindari hal ini, gunakan jadx , yang mendekompilasi bytecode dalvik menjadi kode sumber java, tanpa membuat .jar/ .classfile terlebih dahulu seperti dex2jarhalnya (menurut saya apktool menggunakan dex2jar). Ini juga open-source dan dalam pengembangan aktif. Ia bahkan memiliki GUI, untuk GUI-fanatik. Cobalah!

polim
sumber
0

Apakah pengguna dapat mengubah file apk aplikasi saya kembali ke kode sebenarnya?

Iya.

Orang dapat menggunakan berbagai alat untuk:

  • analisis: apk Anda
  • decode / hack apk Anda
    • gunakan FDex2untuk membuang dexfile
      • lalu gunakan dex2jaruntuk mengonversi kejar
        • lalu gunakan jadxuntuk mengonversi ke javakode sumber

Jika ya - adakah cara untuk mencegahnya?

Iya. Beberapa (dapat digabungkan) cara untuk mencegah (derajat tertentu) ini:

  • tingkat rendah: kebingungan kode
    • menggunakan Android ProGuard
  • tingkat tinggi: gunakan skenario android harden

Lebih jelasnya bisa merujuk tutorial bahasa Mandarin saya :安卓 应用 的 安全 和 破解

crifan
sumber
0

Ya, ada banyak sekali software yang tersedia untuk mendekompilasi file .apk.

Baru-baru ini, saya telah menyusun daftar akhir dari 47 pengurai APK terbaik di situs web saya. Saya mengaturnya menjadi 4 bagian berbeda.

  1. Pengurai APK Sumber Terbuka
  2. Pengurai APK Online
  3. APK Decompiler untuk Windows, Mac atau Linux
  4. Aplikasi Pengurai APK

Semoga koleksi ini bermanfaat bagi Anda.

Tautan: https://www.edopedia.com/blog/best-apk-decompilers/

Muhammad Furqan Ul Haq
sumber