Nyahkompiun APK untuk mendapatkan kod & sumber


Pengenalan kepada bahagian ini

"Decompile Apk" nampaknya sangat canggih, tetapi sebenarnya ia tidak begitu. Ia hanya menggunakan beberapa perisian penyahkompiunan untuk menyahkompilasi APK kami untuk mendapatkan kod sumber, gambar, sumber XML dan fail lain program Tidak tahu Adakah anda pernah melakukan ini sebelum ini? , kemudian nyahzip: Pengarang membuka zip APK secara rawak:

Kita boleh membuka direktori res dan mendapatkan bahan gambar di dalamnya

Walau bagaimanapun, kaedah ini hanya akan memperoleh beberapa sumber fail bitmap seperti .png atau .jpg Jika ia adalah sumber xml, kami akan mendapati ia bercelaru apabila kami membukanya Dan jika kami ingin melihat kod Java APK program, Ia juga tidak berfungsi, kerana semuanya dibungkus ke dalam fail classes.dex! Tetapi penyahkompilasi boleh menyelesaikan keperluan anda ~ Di samping itu, jangan gunakan penyahkompilasi untuk melakukan perkara yang menyalahi undang-undang, seperti membungkus semula APK orang lain dengan tandatangan anda sendiri dan kemudian menerbitkannya ke pasaran yang berkaitan... Selain itu, kami merujuk kepada kod orang lain , bukannya salinan lengkap! ! ! Ingat! !

1. Tiga alatan untuk disediakan

  1. apktool: Dapatkan fail sumber, ekstrak fail imej, fail susun atur dan beberapa fail sumber XML

  2. dex2jar: Nyah susun APK ke dalam kod sumber Java (tukar classes.dex ke dalam fail jar)

  3. jd-gui: Lihat fail balang yang ditukar dalam 2, iaitu, lihat fail Java Untuk kemudahan pembaca, berikut adalah tiga pakej bersama-sama dan meletakkannya pada cakera awan Anda boleh memuat turunnya jika perlu: Tiga alat yang berkaitan dengan penyahkompilasi.zip.


2. Gunakan apktool untuk menyahkompilasi APK untuk mendapatkan imej dan sumber XML:

Selepas menyahmampat apktool yang dimuat turun, kita boleh melihat fail berikut (abaikan kedua-dua csdn, satu ialah apk yang dinyahkompilasi, dan satu lagi ialah fail yang dinyahkompilasi):


Seterusnya, klik dua kali cmd.exe, datang ke baris arahan, taip: apktool.bat d csdn.apk dan tekan Enter:

Kemudian anda boleh melihat folder csdn yang dijana, yang mengandungi sumber yang kami inginkan.


Okay, sekarang anda mempunyai sumber XML, bukan? Bahan gambar juga ada!


3. Gunakan dex2jar untuk menukar classes.dex menjadi fail jar:

Nyahzip folder dex2jar yang dimuat turun dan salin classes.dex dalam apk ke direktori di mana dex2jar.bat berada:

Buka cmd dan pergi ke direktori ini: taip: d2j-dex2jar.bat classes.dex

Kemudian kita dapat melihat bahawa pakej balang dihasilkan:

Baiklah, penukaran selesai!


4. Gunakan jd-gui untuk melihat kod Java dalam pakej balang:

OK, buka folder jd-gui

Selepas membuka, buka pakej balang yang ditukar dalam 3 kami, kami dapat melihat kod di dalamnya:

Pelanggan csdn tidak mengelirukan kod...mungkin ia atas semangat sumber terbuka, mari kita belajar kod! Secara umumnya, keluaran apk akan Obfuscate, dan kemudian lakukan beberapa penyulitan, atau gunakan platform penyulitan pihak ketiga, "Penyulitan Cinta" yang lebih biasa digunakan Jika anda berminat, anda juga boleh menyemak Baidu untuk pengenalan yang lebih terperinci!


Ringkasan bahagian ini

Okey, itu sahaja untuk memperkenalkan penyahkompilasi APK. Saya percaya anda sudah bersedia dan ingin mencubanya. Hormati hasil kerja orang lain! Di samping itu, itu sahaja untuk bab pertama tentang pembinaan persekitaran dan beberapa teknik pembangunan biasa Dari bahagian seterusnya, kami akan memulakan bab kedua siri tutorial ini - mempelajari tentang kawalan UI biasa dalam Android! Kerana terdapat banyak kawalan asas yang berkaitan, mungkin terdapat berpuluh-puluh Jika anda terus mempelajari kawalan, anda mungkin menulis tutorial secara selari, belajar satu kawalan setiap hari + beberapa mata pengetahuan yang lain akan datang dengan idea, jadi nantikan~Terima kasih~