Dapatkan Kode Sumber dari file .apk? [Tutup]

21

Memiliki file .apk, apakah ada cara saya bisa mendapatkan kode sumbernya?

eldarerathis
sumber
7
Sebelum itu, sudahkah Anda memeriksa apakah paket tersebut open source?
ott--
.Apk hanyalah sebuah file .zip. Tapi sayangnya aplikasi apa pun untuk 'rilis' mungkin akan dilindungi oleh ProGuard .
Daniel López
@MatthewRead Op bertanya apakah dia bisa mendapatkan kode dari api, dan saya menjawab apa yang disebut fenomena ini dan cara-cara untuk setidaknya mencegah membuat aplikasi yang sama. Dia tidak mengatakan bagaimana mencegah mendapatkan kode. Jadi ya itu menjawab pertanyaan.
Manusia

Jawaban:

11

Jika Anda beruntung dan .apkfile Anda tidak dilindungi oleh Proguard atau analog, Anda dapat menggunakan alat APK . Ini adalah alat untuk merekayasa balik aplikasi pihak ketiga, tertutup, biner Android.

HitOdessit
sumber
Apktool hanya menghasilkan Smali-Code, bukan Java code - itu perbedaan besar.
Robert
2

Dari salah satu komunitas wiki oleh Parnkul Garg di SO :


Prosedur untuk mendekode file .apk, metode langkah demi langkah:

Langkah 1:

  1. Buat folder baru dan salin file .apk yang ingin Anda dekode.

  2. Sekarang ganti nama ekstensi file .apk ini menjadi .zip (mis. Ganti nama dari filename.apk menjadi filename.zip) dan simpan. Sekarang Anda dapat mengakses file classes.dex, dll. Pada tahap ini Anda dapat melihat drawable tetapi bukan file xml dan java, jadi lanjutkan.

Langkah 2:

  1. Sekarang ekstrak file .zip ini di folder yang sama (atau FOLDER BARU).

  2. Unduh dex2jar dan ekstrak ke folder yang sama (atau FOLDER BARU).

  3. Pindahkan file classes.dex ke folder dex2jar.

  4. Sekarang buka command prompt dan ubah direktori ke folder itu (atau FOLDER BARU). Kemudian tulis d2j-dex2jar classes.dexdan tekan enter. Anda sekarang memiliki file classes.dex.dex2jar di folder yang sama.

  5. Unduh java decompiler , klik dua kali pada jd-gui, klik pada file yang terbuka, dan buka file classes.dex.dex2jar dari folder itu: sekarang Anda mendapatkan file kelas.

  6. Simpan semua file kelas ini (Dalam jd-gui, klik File -> Simpan Semua Sumber) dengan nama src. Pada tahap ini Anda mendapatkan sumber java tetapi file .xml masih tidak dapat dibaca, jadi lanjutkan.

Langkah 3:

Sekarang buka folder baru lainnya

  1. Masukkan file .apk yang ingin Anda dekode

  2. Unduh versi terbaru apktool DAN jendela instalasi apktool (keduanya dapat diunduh dari tautan yang sama) dan letakkan di folder yang sama

  3. Unduh framework-res.apk dan letakkan di folder yang sama (Tidak semua file apk membutuhkan file ini, tetapi tidak ada salahnya)

  4. Buka jendela perintah

  5. Arahkan ke direktori root APKtool dan ketikkan perintah berikut: apktool if framework-res.apk

  6. apktool d myApp.apk (di mana myApp.apk menunjukkan nama file yang ingin Anda dekode)

sekarang Anda mendapatkan folder file di folder itu dan dapat dengan mudah membaca file xml apk.

Langkah 4:

Bukan langkah apa pun hanya menyalin konten dari kedua folder (dalam hal ini kedua folder baru) ke satu

dan nikmati kode sumber ...

pengguna3226511
sumber