Apakah ada cara untuk mendapatkan kode sumber dari file APK?

1262

Hard drive di laptop saya baru saja mogok dan saya kehilangan semua kode sumber untuk aplikasi yang telah saya kerjakan selama dua bulan terakhir. Yang saya miliki hanyalah file APK yang disimpan di email saya sejak saya mengirimnya ke teman.

Apakah ada cara untuk mengekstrak kode sumber saya dari file APK ini?

Frank Bozzo
sumber
28
FYI Ada dekompiler online di sini
edwin
11
Apakah ini berarti kita bisa mendapatkan kode sumber aplikasi bernilai jutaan dolar seperti Whatsapp atau Facebook? Apakah ini semua open source?
Faizan
3
@ Saizan, apakah Anda pernah mendengar tentang proguard ??
Vishwajit Palankar
1
Ungkapan dari pertanyaan itu memang mengandung berita hidup yang tidak relevan dan dengan demikian dapat ditafsirkan sebagai merekomendasikan alat . Namun jawabannya bisa saja berpotensi javac -decompile, yang kemudian akan sesuai dengan pedoman SO. Tampak bagi saya bahwa jawabannya di luar topik , bukan pertanyaan.
SwiftArchitect
2
dalam artikel ini mereka menjelaskan bagaimana mereka merekayasa balik Pokemon Go
anders

Jawaban:

1569

Cara sederhana: gunakan alat online http://www.javadecompilers.com/apk , unggah apk dan dapatkan kode sumber.


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 class.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.dex(untuk terminal mac atau tulis ubuntu ./d2j-dex2jar.sh classes.dex) dan 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. Buka jendela perintah

  4. Sekarang jalankan perintah seperti apktool if framework-res.apk(jika Anda tidak mendapatkannya di sini ) dan selanjutnya

  5. 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:

Ini bukan langkah apa pun, cukup salin konten dari kedua folder (dalam hal ini, kedua folder baru) ke satu

dan nikmati kode sumber ...

Prankul Garg
sumber
26
@prankulgarg, Pada poin 5 dari langkah 3 saya mendapatkan kesalahan berikut: Tidak dapat mengakses jarfile E: \ apktojava \ testt \\ apktool.jar
55
Alih-alih menulis dex2jar classes.dex dalam cmd coba d2j-dex2jar classes.dex . Karena kelas dex2jar. Cmd ini sudah usang.
Umesh
23
Bagi mereka yang tidak dapat menemukan framework-res.apk. Unduh dari sini
atulkhatri
12
Mereka yang tidak menemukan d2j-dex2jar.sh, unduh dex2jar dari sini: dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip
Reaz Murshed
14
Untuk orang-orang yang terjebak dalam langkah 2: 4 unduh versi ini dan itu akan menyelesaikan masalah: sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip/download itu untuk saya. @delive
siriuseteor77
126

Ini adalah deskripsi alternatif - kalau-kalau ada yang terjebak dengan deskripsi di atas. Ikuti langkah-langkahnya:

  1. unduh apktool.bat(atau apktooluntuk Linux) dan apktool_<version>.jardari http://ibotpeaches.github.io/Apktool/install/
  2. ganti nama file jar dari atas ke apktool.jardan letakkan kedua file di folder yang sama

  3. buka kotak dos ( cmd.exe) dan ubah ke folder itu; memverifikasi bahwa Java Environment diinstal (untuk Linux periksa catatan tentang perpustakaan yang diperlukan juga)
  4. Mulailah: apktool decode [apk file]

    Hasil antara : file sumber daya,AndroidManifest.xml

  5. unzip file APK dengan unpacker pilihan Anda

    Hasil antara :classes.dex

  6. unduh dan ekstrak dex2jar-0.0.9.15.zipdari http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=
  7. seret dan lepas classes.dexke dex2jar.bat(atau masukkan <path_to>\dex2jar.bat classes.dexdalam kotak DOS; untuk penggunaan Linux dex2jar.sh)

    Hasil antara :classes_dex2jar.jar

  8. membuka kemasan classes_dex2jar.jar(mungkin opsional tergantung pada dekompiler yang digunakan)
  9. mendekompilasi file kelas Anda (mis. dengan JD-GUI atau DJ Decompiler )

    Hasil : kode sumber

Catatan: tidak diijinkan mendekompilasi paket pihak ketiga; panduan ini dimaksudkan untuk memulihkan kode sumber pribadi dari file APK saja; akhirnya, kode yang dihasilkan kemungkinan besar akan dikaburkan

Trinimon
sumber
6
Saya mungkin juga menambahkan, bahwa ada alternatif modern untuk APKTool-> dex2jar-> rute JD-GUI ini! Coba saja open-source APK dan DEX decompiler bernama Jadx: sourceforge.net/projects/jadx/files Juga memiliki versi online di sini: javadecompilers.com/apk
Andrew Rukin
1
Diizinkan (baca: legal) untuk mendekompilasi file APK apa pun . Lihat pertanyaan berikut: stackoverflow.com/questions/9674557/…
Rakete1111
1
Mengapa mereka apktoolmengembalikan smalifile? Bagaimana cara mendapatkan javafile?
rminaj
108

Meskipun Anda mungkin dapat mendekompilasi APKfile Anda, Anda mungkin akan menemukan satu masalah besar:

itu tidak akan mengembalikan kode yang Anda tulis. Alih-alih itu akan mengembalikan apa pun yang dimasukkan oleh kompiler, dengan variabel yang diberi nama acak, serta fungsi yang diberi nama acak. Mungkin perlu waktu lebih lama untuk mencoba mendekompilasi dan mengembalikannya ke kode yang Anda miliki, daripada memulai dari awal.

Sayangnya, hal-hal seperti ini telah membunuh banyak proyek.
Untuk masa depan, saya sangat merekomendasikan mempelajari Sistem Kontrol Versi, seperti CVS , SVN dan git dll

dan bagaimana cara mencadangkannya.

Ryan Gooler
sumber
19
Layanan seperti Dropbox juga akan membantu.
Jeremy Logan
1
dan selalu ada cara untuk membakar CD
JerryGoyal
52

Ada juga aplikasi baru di Play Store yang memungkinkan untuk mendekompilasi apk (aplikasi sistem juga) dan melihat kode sumber langsung di smartphone Anda. Ini menyimpan file ke kartu SD Anda sehingga Anda dapat melihatnya di komputer Anda juga. Tidak memerlukan root atau yang lainnya.

Cukup instal dan bersenang-senanglah. Saya pikir ini adalah cara termudah untuk mendekompilasi aplikasi.

Cilenco
sumber
1
Yang ini paling mudah.
Midhun Vijayakumar
@ MadhunVijayakumar dapatkah Anda ke apk untuk konversi kode sumber menggunakan ini?
Sajeev
28

apktool adalah hal terbaik yang bisa Anda coba. Saya telah menyimpan beberapa xml dengan itu, tetapi jujur ​​saya tidak tahu bagaimana itu akan bekerja dengan kode .java.

Saya akan merekomendasikan Anda untuk memiliki repositori kode bahkan jika Anda adalah satu-satunya pembuat kode. Saya telah menggunakan Project Locker untuk proyek saya sendiri. Ini memberi Anda repo svn dan git gratis.

Makarse
sumber
Anda akan menemukan apktool sangat diperlukan jika Anda ingin mengekstraksi sumber daya (yaitu gambar dari aplikasi Android. Sebenarnya, alat ini tidak memiliki pesaing sama sekali!) Versi online apktool tersedia di sini: www.javadecompilers.com/apktool
Andrew Rukin
23

Dua artikel ini menjelaskan cara menggabungkan penggunaan apktooldan dex2jaruntuk mengambil APKfile dan membuat proyek Eclipse yang dapat membangun dan menjalankannya.

http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html

http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html

Pada dasarnya Anda:

  1. Gunakan apktooluntuk mengeluarkan file sumber daya dari apk
  2. Gunakan dex2jaruntuk mendapatkan file jar yang berisi kelas-kelas dalam format yang disukai Eclipse.
  3. Buat proyek Eclipse arahkan ke file sumber daya dan file jar baru
  4. Buka file jar dengan utilitas zip dan hapus sumber yang ada
  5. Buka file jar dengan JDGuiuntuk melihat kode sumber
  6. Ambil kode sumber apa pun yang Anda butuhkan JDGui, tempel di kelas di dalam Eclipse dan modifikasi
  7. Hapus kelas itu dari file jar (sehingga Anda tidak memiliki kelas yang sama didefinisikan beberapa kali)
  8. Menjalankannya.
Tom Hennen
sumber
2
Saya tahu pertanyaan ini masih dijawab, saya ingin memberikan informasi: ada dekompiler online untuk apks android decompileandroid.com Unggah apk dari mesin lokal, Tunggu beberapa saat, unduh kode sumber dalam format zip.
Snehal Masne
2
Terdengar bagus. Dan kemudian situs web decompileandroid juga memiliki salinan semua sumber Anda! Pintar!
DDSports
Satu pertanyaan, saya punya apk yang di-decompile tetapi di jd gui Saya tidak tahu apakah ada kelas java yang sebenarnya, apakah Anda tahu jika sebuah apk didekompilasi apakah ada kelas Java yang sebenarnya?
21

apktool akan berfungsi. Anda bahkan tidak perlu tahu keystore untuk mengekstrak kode sumber (yang agak menakutkan). Kelemahan utama adalah bahwa sumber disajikan dalam format Smali, bukan Java. File lain seperti ikon dan main.xml datang dengan sangat baik dan mungkin perlu waktu Anda untuk setidaknya memulihkannya. Pada akhirnya, Anda kemungkinan besar perlu menulis ulang kode Java Anda dari awal.

Anda dapat menemukan apktool di sini . Cukup unduh apktool dan bantuan yang sesuai (untuk Windows, Linux, atau Mac OS). Saya sarankan menggunakan alat seperti 7-zip untuk membongkar mereka.

Ryan Berger
sumber
16

Ada beberapa cara untuk melakukan ini:

  1. Gunakan fitur "Profil atau Debug APK" di Android Studio 3.0.

    Ini memungkinkan Anda untuk membuka dan menjelajahi APK di Android Studio. Kelas didekompilasi menjadi smali. Sumber daya tidak diekstraksi dan hal-hal seperti "Pergi ke Definisi", "Temukan Semua Referensi" dan debugging tidak berfungsi tanpa kode sumber (android studio 3.0 canary 9). Beberapa fitur smali tambahan mungkin berfungsi dengan smalidea .

    android-studio

    Pilih file

    kode

  2. Gunakan jadx .

    Jadx mendekompilasi kode dalam APK yang diberikan ke file sumber java.

    jdax-img

  3. Gunakan apktool .

    Apktool adalah alat baris perintah yang mengekstrak sumber daya dan mendekompilasi kode ke smali untuk apk yang diberikan. Anda dapat mengkompilasi ulang menggunakan apktool juga. Berikut ini contoh tindakannya:

    $ apktool d test.apk
    I: Using Apktool 2.2.4 on test.apk
    I: Loading resource table...
    I: Decoding AndroidManifest.xml with resources...
    I: Loading resource table from file: 1.apk
    I: Regular manifest package...
    I: Decoding file-resources...
    I: Decoding values */* XMLs...
    I: Baksmaling classes.dex...
    I: Copying assets and libs...
    I: Copying unknown files...
    I: Copying original files...
    $ apktool b test
    I: Using Apktool 2.2.4 on test
    I: Checking whether sources has changed...
    I: Smaling smali folder into classes.dex...
    I: Checking whether resources has changed...
    I: Building resources...
    I: Building apk file...
    I: Copying unknown files/dir...
0xcaff
sumber
Saya sudah mencoba jadx, tetapi bahkan dengan helloworld sederhana, meskipun ia mendekompilasi ke java, Namun, mencoba untuk membuka proyek di android studio, dan mengkompilasinya kembali ke apk, gagal karena berbagai alasan (file duplikasi, dll). Apakah ada metode yang membuat java yang dapat dikompilasi kembali ke apk?
ransh
1
@ Transh Saya biasanya menggunakan jadx untuk membaca kode lalu apktool untuk memodifikasi kode. apktool tidak membuat java tetapi memungkinkan untuk kompilasi ulang.
0xcaff
0xcaff, terima kasih atas klarifikasi. itu masuk akal sekarang. Karena mencoba mengkompilasi java decompile di android studio, tidak berfungsi.
ransh
16

Mungkin yang mudah untuk melihat sumbernya:

Di Android studio 2.3 Build -> Analyze APK -> Select the apk that you want to decompile,.
Anda akan melihat kode sumbernya.

Tautan untuk referensi:
https://medium.com/google-developers/making-the-most-of-the-apk-analyzer-c066cb871ea2

SKK
sumber
9
Ini daftar kelas dan metode tetapi tidak memberikan kode sumber.
WSS
Anda bisa mendapatkan file-file di atas hanya dengan mengubah ".apk" menjadi ".zip"
M. Usman Khan
7

Saya akan menunjukkan kepada Anda cara lain untuk mendekompilasi file .apk .

Anda dapat mengikuti 2 langkah pertama dari " prankul garg ". Jadi, Anda memiliki peluang lain:

Langkah 3 ':

Unduh "JD-GUI" , itu mudah ditemukan. Buka file .jar Anda di "jd-gui.exe". (File> Buka file> 'temukan file .jar Anda '). Setelah prosedur ini, Anda dapat menyimpan semua sumber daya dalam file .zip .

Begitu,

1 - Anda harus mengganti nama file .apk menjadi .zip

2nd - Anda harus men-decode file .dex (jika Anda mau, decode file .apk ke dex2jar , itu mungkin)

3 - Anda harus men-decode file .jar dengan JD-GUI

Franklin Hirata
sumber
20
Apa yang dijawab oleh jawaban ini dan yang lainnya tidak?
Jørgen R
Anda tidak benar-benar harus mengganti nama menjadi zip. Saya bisa membuka file apk secara langsung dengan 7-zip.
miva2
7

Di bawah alat ONLINE :

http://www.javadecompilers.com/apk

itu melakukan SEMUA dengan satu klik: dekompilasi file .java + sumber daya + xml (dalam satu file .zip) dengan decompiler yang sangat baik (jadx mengembalikan kode java di tempat / fungsi di mana kompilasi lain mengembalikan komentar di dalam fungsi seperti "tidak dapat mendekompilasi" atau beberapa assembler android / kode mesin)

Kamil Kiełczewski
sumber
ya, ini hebat, tetapi alih-alih nama fungsi, ini telah mengubah semua nama fungsi menjadi CS1001 dan seterusnya. Jadi bagaimana mengenali ini. dan satu hal lagi, bisakah kita menggunakan apk yang telah diurai ini secara langsung sebagai proyek Android studio kita, apakah akan berhasil?
Zia Ur Rahman
lalu untuk tujuan apa kita gunakan untuk mendekompilasi beberapa apk, jika kita tidak dapat menggunakan fungsinya di aplikasi kita.
Zia Ur Rahman
@ZiaUrRahman saya tidak tahu. Namun saya dalam kasus saya, saya mendekompilasi kode untuk menganalisis algoritma. Apakah Anda memeriksa apakah kode yang diuraikan dari alat itu dapat dikompilasi oleh android studio dengan cara yang sepenuhnya otomatis - atau perlu beberapa "pemrosesan manusia"?
Kamil Kiełczewski
1
Saya mengimpor proyek yang didekompilasi di android studio, tetapi Tidak ada gradle di sana dan proyek memiliki banyak file tetapi tidak mengerti sampai kami menjalankannya. Cukup tidak berhasil. Saya perlu membuat proyek terurai sepenuhnya funtional di studio android dan kemudian mendapatkan beberapa fungsi inti dari beberapa yang, kemudian ingin menggunakan / menanamkannya di proyek saya sendiri. Jadi adakah cara bagaimana melakukan ini?
Zia Ur Rahman
6

Situs ini https://www.apkdecompilers.com/ melakukannya secara otomatis.

Saya mencoba situs yang disebutkan dalam jawaban yang diterima pertama tetapi itu tidak berhasil untuk saya.

M. Usman Khan
sumber
saya tidak bisa retrive kode sumber java saya ... itu appeare sesuatu seperti file terlampir dan ..
iman kazemayni
@imankazemayni di tautan di atas, "browse" ke file APK Anda dan klik "Decompile your APK". Ini akan memakan waktu dan kemudian akan memberi Anda kode sumber, jika kode tersebut tidak dienkripsi.
M. Usman Khan
apakah Anda tahu dampak multidex pada enkripsi?
iman kazemayni
6

Saya pribadi merekomendasikan Show Java Android App untuk mendapatkan kode sumber. Anda dapat mengunduhnya dari play store atau dari sini

Codelover
sumber
Sebagian besar kompiler online tidak berfungsi, Tetapi aplikasi ini berfungsi. Terima kasih
Sunil
4

Apktool untuk rekayasa balik aplikasi pihak ketiga, tertutup, biner Android.

Ia dapat mendekode sumber daya ke bentuk yang hampir asli dan membangunnya kembali setelah melakukan beberapa modifikasi.

Memungkinkan untuk men-debug kode smali langkah demi langkah. Itu juga membuat bekerja dengan aplikasi lebih mudah karena struktur file seperti proyek dan otomatisasi beberapa tugas berulang seperti membangun apk, dll.

http://ibotpeaches.github.io/Apktool/

Biswajit Karmakar
sumber
3

apktool adalah cara untuk pergi. Layanan apktool online juga ada: http://www.javadecompilers.com/apktool

Beberapa batasan, jelas, ada karena 'sifat online' layanan: Anda dapat mengekstrak dan meneliti aset dan file manifes, tetapi tidak mungkin untuk mengkompilasi ulang aplikasi saat ini.

Meski begitu, ini adalah cara mudah untuk 'membuka' aplikasi android.

Andrew Rukin
sumber
3

Anda dapat mencoba DexPatcher . Bahkan terintegrasi dengan Android Studio. Ini menggunakan Apktool dan Dex2Jar secara internal.
Anda dapat menggunakan alat-alat itu secara mandiri juga. Apktool mendekompilasi apk, dan mengekstrak file .dex, yang selanjutnya dapat dikonversi ke jar menggunakan Dex2Jar. Guci dapat didekompilasi dengan menggunakan JD-GUI . Anda dapat melihat kode Java dengan bantuan alat itu. Meskipun kesamaan kode dekompilasi dengan kode aktual tidak dapat dijamin. Ada beberapa alat pengabaian kode tingkat lanjut yang tersedia di pasaran, yang mengacaukan kode tersebut sehingga menyulitkan untuk mendekompilasi / memahami. misalnya. Proguard

Lakshmikant Deshpande
sumber
Halo Bagaimana cara menggunakan DexPatcher dengan Android Studio?
ravi152
Tidak dapat menjelaskan semuanya dalam komentar. Google adalah teman Anda :) Ada beberapa tutorial youtube yang bagus juga.
Lakshmikant Deshpande
2

berdasarkan kondisi Anda, jika apk Android Anda:

Condition1: NOT harden (oleh Tencent Legu / Qihoo 360 / ...)

Choice1: menggunakan layanan online

seperti:

menggunakan www.javadecompilers.com

pergi ke:

untuk secara otomatis memecahkan kode dari apk ke kode sumber java

Langkah:

uploadFile apk + klik Run+ tunggu beberapa saat + klik Downloaduntuk mendapatkan zip + unzip ->

sources/com/{yourCompanyName}/{yourProjectName}

adalah kode sumber java yang Anda harapkan

Choice2: dekompilasi / crack sendiri

gunakan alat terkait untuk mendekompilasi / crack sendiri:

gunakan jadx/ jadx-guikonversi apkkejava sourcecode

unduh jadx-0.9.0.zip lalu unzip untuk mendapatkannya bin/jadx, lalu:

  • mode baris perintah:
    • dalam terminal run: jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
    • output_folder akan menunjukkan diterjemahkan sourcesdanresources
      • sources/com/{yourCompanyName}/{yourProjectName} adalah harapan Anda java sourcecode
  • Mode GUI
    • klik dua kali untuk menjalankan jadx-0.9.0/bin/jadx-gui(Linux jadx-gui.sh/ Windows jadx-gui.bat)
    • buka apkfile
    • itu akan otomatis decoding -> melihat kode sumber java yang Anda harapkan
    • save all atau save as Gradle project

misalnya:

Condition2: harden (oleh Tencent Legu / Qihoo 360 / ...)

metode utama 3 steps:

  1. apk/app to dex
  2. dex to jar
  3. jar to java src

penjelasan detail:

Langkah 1: apk/app to dex

gunakan alat ( FDex2/ DumpDex) membuang / menghubungkan (satu atau beberapa) dexfile dari menjalankan aplikasi

Langkah:

mempersiapkan lingkungan

buang dexdari menjalankan aplikasi

  • jalankan FDex2kemudian klik nama apk Anda untuk mengaktifkannya nanti untuk menangkap / menghubungkan dex

  • (di ponsel / emulator) jalankan aplikasi Anda
  • temukan dan salin dump out seluruh sumber daya apk di /data/data/com/yourCompanyName/yourProjectName
    • di folder root-nya biasanya akan menemukan beberapa dexfile

Langkah 2: dex to jar

gunakan alat ( dex2jar) konversi (khusus, berisi logika aplikasi) dexfile ke jarfile

unduh dex2jar punya dex-tools-2.1-SNAPSHOT.zip , unzip dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh,

sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f your_dex_name.dex

misalnya:

dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex
dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

Step3: jar to java src

gunakan salah satu alat:

konversikan jarkejava src

untuk dari efek konversi jar ke java:

Jadx> Procyon> CRF>>JD-GUI

jadi rekomendasikan penggunaan: Jadx/jadx-gui

Langkah:

  • klik dua kali untuk menjalankan jadx-gui
  • buka dexfile
  • File -> save all

misalnya:

mengekspor java src:


Penjelasan lebih rinci dapat melihat tutorial online ebook Cina saya :

crifan
sumber
2

Studio Android menawarkan Anda untuk menganalisis file apk apa pun.

1 - Dari menu bangun pilih opsi analisis apk dan pilih file apk. 2 - Ini akan menghasilkan Anda file classes.dex dan file lainnya. 3 - Klik pada class.dex yang akan memberi Anda daftar folder, paket, perpustakaan dan file. 4 - Dari dan pengaturan studio android instal sebuah plugin yang disebut "Dex to Jar" 5 - klik pada file aktivitas apa pun dari proyek yang Anda ekstrak dan pilih dex to jar dari menu build.

Ini akan menghasilkan kode aktual untuk file java Anda.

Bersulang.

Rohit Patil
sumber
1

Cara paling sederhana adalah menggunakan Apk OneClick Decompiler. Itu adalah paket alat untuk mendekompilasi & membongkar APK (paket android).

FITUR

  • Semua fitur terintegrasi ke dalam menu klik kanan Windows.
  • Dekompilasi kelas APK ke kode sumber Java.
  • Bongkar APK ke kode smali dan dekode sumber dayanya.
  • Instal APK ke ponsel dengan klik kanan.
  • Kompilasi ulang APK setelah mengedit kode smali dan / atau sumber daya. Selama kompilasi ulang:
  • Optimalkan gambar png
  • Tanda tangani apks
  • Zipalign

PERSYARATAN

Java Runtime Environment (JRE) harus diinstal.

Anda dapat mengunduhnya dari tautan ini Apk OneClick Decompiler

Nikmati itu.

Masoud Mokhtari
sumber
1

Saya menemukan yang berikut ini sebagai metode paling sederhana:

  1. Ganti nama app.apk Anda menjadi app.zip (Ubah ekstensi dari apk ke zip)
  2. Ekstrak file zip ke dalam folder
  3. Gunakan alat JADX untuk membaca kode sumber, hadir dalam file classes.dex.
Masood Anwar
sumber
1

Ada aplikasi untuk itu dan biasanya hanya membutuhkan beberapa klik dan Anda selesai. https://github.com/Nuvolect/DeepDive-Android

  1. Pilih Aplikasi, di bawah "Aplikasi Terpasang" pilih aplikasi Anda. Jika tidak ada di sana, Anda dapat memuat APK.
  2. Pilih "Ekstrak APK"
  3. Pilih "Buka Kemasan APK"
  4. Pilih "Dekompilasi dengan Jadx". Ini bisa memakan waktu beberapa detik atau beberapa menit tergantung pada kecepatan perangkat Anda

Setelah itu Anda dapat menelusuri kode sumber, mengunduhnya ke komputer lain dengan elFinder atau mencarinya menggunakan Lucene.

Selain Jadx memiliki dekompiler CFR dan Fernflower.

MobileMateo
sumber
0

Saya sudah mengemudi sendiri gila selama berhari-hari mencoba untuk mendapatkan dex2jar untuk bekerja pada laptop fedora 31 terhadap apk yang tidak akan berfungsi. Skrip python 3 ini melakukan trik dalam hitungan menit dan menginstal file kelas jd-gui yang dapat dibaca manusia.

http://java-decompiler.github.io/

https://github.com/Storyyeller/enjarify

khususnya, inilah yang saya berlari:

# i installed apktool before the rest of the stuff, may not need it but here it is
$> cd /opt
$> sudo mkdir apktool
$> cd apktool/
$> sudo wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
$> sudo wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.4.1.jar
$> sudo mv apktool_2.4.1.jar apktool.jar
$> sudo mv apktool* /usr/bin/
$> sudo chmod a+x /usr/bin/apktool*

# and enjarify
$> cd /opt
$> sudo git clone https://github.com/Storyyeller/enjarify.git
$> cd enjarify/
$> sudo ln -s /opt/enjarify/enjarify.sh /usr/bin/enjarify

# and finally jd-gui
$> cd /opt
$> sudo git clone https://github.com/java-decompiler/jd-gui.git
$> cd jd-gui/
$> sudo ./gradlew build

# I made an alias to kick of the jd-gui with short commandline rather than long java -jar blahblahblah :)
$> echo "jd-gui='java -jar /opt/jd-gui/build/launch4j/lib/jd-gui-1.6.6.jar'" >> ~/.bashrc

Sekarang kita harus dapat rum berikut untuk mendapatkan file kelas:

$> enjarify yourapkfile.apk

Dan untuk memulai jd-gui:

$> jd-gui

Maka cukup buka file kelas Anda!

RJ Cole
sumber
0

Saya mengembangkan Alat - Code Analyzer, ini berjalan di iPhone / iPad / Mac, untuk menganalisis file Java / Android, https://decompile.io

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Qing Xu
sumber
0

Gunakan alat ini http://www.javadecompilers.com/

Namun baru-baru ini, gelombang baru decompiler telah memasuki pasar: Procyon, CFR, JD, Fernflower, Krakatau, Candle.

Berikut daftar dekompiler yang disajikan di situs ini:

CFR - Gratis, tidak ada kode sumber yang tersedia, http://www.benf.org/other/cfr/ Penulis: Lee Benfield

Dekompiler yang diperbarui dengan sangat baik! CFR mampu mendekompilasi fitur-fitur Java modern - modul Java 9, Java 8 lambdas, Java 7 String switches, dll. Ia bahkan dapat mengubah file kelas dari bahasa JVM lainnya ke Java!

JD - gratis untuk penggunaan nonkomersial, http://jd.benow.ca/ Penulis: Emmanuel Dupuy

Diperbarui pada tahun 2015. Memiliki antarmuka visual dan plugin untuk Eclipse dan IntelliJ. Ditulis dalam C ++, jadi sangat cepat. Mendukung Java 5.

Procyon - open-source, https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler Penulis: Mike Strobel

Fernflower - open-source, https://github.com/fesh0r/fernflower Penulis: Egor Ushakov

Diperbarui pada tahun 2015. Dekompiler Java analitik yang sangat menjanjikan, kini menjadi bagian integral dari IntelliJ 14. ( https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler ) Mendukung Java hingga versi 6 (Anotasi, generik, enum)

JAD - diberikan di sini hanya karena alasan historis. Gratis, tidak ada kode sumber yang tersedia, mirror unduhan jad Pengarang: Pavel Kouznetsov

Faxriddin Abdullayev
sumber