Kaynak kodunu bir APK dosyasından almanın bir yolu var mı?


1261

Dizüstü bilgisayarımdaki sabit disk çöktü ve son iki aydır üzerinde çalıştığım bir uygulamanın tüm kaynak kodunu kaybettim. Sahip olduğum tek şey, bir arkadaşıma gönderdiğim zamandan itibaren e-postalarımda saklanan APK dosyası.

Kaynak kodumu bu APK dosyasından ayıklamanın herhangi bir yolu var mı?


28
FYI Burada çevrimiçi decompiler kontrolü var
edwin

11
Bu, Whatsapp veya Facebook gibi milyon dolarlık uygulamaların kaynak kodunu alabileceğimiz anlamına mı geliyor? Tüm bunlar açık kaynak mı?
Faizan

3
@Faizan korumayı duydun mu ??
Vishwajit Palankar

1
Sorunun ifadesi, alakasız yaşam öyküsü ipuçları içerir ve bu nedenle bir araç önermek olarak yorumlanabilir . Yine de cevap potansiyel olarak olabilirdi javac -decompileve bu daha sonra SO yönergelerine uyacaktır. Bana öyle geliyor ki cevaplar konu değil, konu dışı .
SwiftArchitect

2
içinde bu makalede onlar ters Pokemon Git mühendisi nasıl açıklamak
Anders

Yanıtlar:


1569

Basit bir yol: Çevrimiçi aracı http://www.javadecompilers.com/apk kullanın , apk yükleyin ve kaynak kodu alın.


.Apk dosyalarının kodunu çözme prosedürü, adım adım yöntem:

Aşama 1:

  1. Yeni bir klasör oluşturun ve kodunu çözmek istediğiniz .apk dosyasının üzerine kopyalayın.

  2. Şimdi bu .apk dosyasının uzantısını .zip olarak yeniden adlandırın (örneğin, dosyaadı.apk'tan dosyaadı.zip'e yeniden adlandırın) ve kaydedin. Artık classes.dex dosyalarına vb. Erişebilirsiniz. Bu aşamada xml ve java dosyalarını çizilebilir ancak göremezsiniz, bu yüzden devam edin.

Adım 2:

  1. Şimdi bu .zip dosyasını aynı klasöre (veya YENİ KLASÖR) çıkarın.

  2. Dex2jar dosyasını indirin ve aynı klasöre (veya YENİ KLASÖR) çıkarın.

  3. Classes.dex dosyasını dex2jar klasörüne taşıyın.

  4. Şimdi komut istemini açın ve dizini bu klasöre (veya YENİ KLASÖR) değiştirin. Sonra yazın d2j-dex2jar classes.dex(mac terminali veya ubuntu yazma için ./d2j-dex2jar.sh classes.dex) ve enter tuşuna basın. Şimdi classes.dex.dex2jar dosyanız aynı klasörde.

  5. Java decompiler'ı indirin , jd-gui'ye çift tıklayın, açık dosyaya tıklayın ve bu klasörden classes.dex.dex2jar dosyasını açın: şimdi sınıf dosyaları alıyorsunuz.

  6. Bu sınıf dosyalarının tümünü (jd-gui'de Dosya -> Tüm Kaynakları Kaydet) src adına göre kaydedin. Bu aşamada java kaynağını alırsınız, ancak .xml dosyaları hala okunamıyor, bu yüzden devam edin.

Aşama 3:

Şimdi başka bir klasör aç

  1. Kodunu çözmek istediğiniz .apk dosyasını girin

  2. Apktool AND apktool kurulum penceresinin en son sürümünü indirin (her ikisi de aynı bağlantıdan indirilebilir) ve aynı klasöre yerleştirin

  3. Bir komut penceresi açın

  4. Şimdi komutu şu şekilde çalıştırın apktool if framework-res.apk(eğer buraya sahip değilseniz ) ve sonraki

  5. apktool d myApp.apk (burada myApp.apk kodunu çözmek istediğiniz dosya adını gösterir)

şimdi bu klasörde bir dosya klasörü olsun ve apk'ın xml dosyalarını kolayca okuyabilirsiniz.

4. Adım:

Bu herhangi bir adım değil, sadece her iki klasörün (bu durumda, her iki yeni klasörün) içeriğini tek bir klasöre kopyalayın

ve kaynak kodun tadını çıkarın ...


26
@prankulgarg, 3. adımın 5. noktasında aşağıdaki hatayı alıyorum: jarfile E'ye erişilemiyor: \ apktojava \ testt \\ apktool.jar

55
Cmd'de dex2jar classes.dex yazmak yerine d2j-dex2jar classes.dex dosyasını deneyin . Çünkü dex2jar classes.dex bu cmd kullanımdan kaldırılmıştır.
Umesh

23
Bulamayanlar için framework-res.apk. Buradan
atulkhatri

12
D2j-dex2jar.sh'i bulamayanlar, dex2jar'ı buradan indirin: dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip
Reaz Murshed

14
Adım 2: 4 sıkışmış insanlar için bu sürümü indirin ve sorunu çözecektir: sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip/download benim için yaptı. @delive
siriuseteor77

126

Bu alternatif bir açıklamadır - birisinin yukarıdaki açıklamaya takılı kalması durumunda. Adımları takip et:

  1. indir apktool.bat(veya apktoolLinux için) ve apktool_<version>.jargelen http://ibotpeaches.github.io/Apktool/install/
  2. jar dosyasını yukarıdan yeniden adlandırın apktool.jarve her iki dosyayı da aynı klasöre yerleştirin

  3. bir dos kutusu ( cmd.exe) açın ve bu klasöre geçin; Java Ortamının kurulu olduğunu doğrulayın (Linux için gerekli kitaplıklarla ilgili notları da kontrol edin)
  4. Başlat: apktool decode [apk file]

    Ara sonuç : kaynak dosyaları,AndroidManifest.xml

  5. APK dosyasını seçtiğiniz bir paket açıcıyla açın

    Ara sonuç :classes.dex

  6. indirme ve özü dex2jar-0.0.9.15.zipgelen http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=
  7. sürükle ve bırak classes.dexüzerine dex2jar.bat(veya girmek <path_to>\dex2jar.bat classes.dexDOS kutusunda; Linux kullanım için dex2jar.sh)

    Ara sonuç :classes_dex2jar.jar

  8. ambalajından çıkar classes_dex2jar.jar(kullanılan dekompresöre bağlı olarak isteğe bağlı olabilir)
  9. sınıf dosyalarınızı açın (örn. JD-GUI veya DJ Decompiler ile )

    Sonuç : kaynak kodu

Not: üçüncü taraf paketlerinin koda dönüştürülmesine izin verilmez; bu kılavuz yalnızca bir APK dosyasından kişisel kaynak kodunu kurtarmayı amaçlamaktadır; Son olarak, ortaya çıkan kod büyük olasılıkla gizlenecektir


6
Bu APKTool-> dex2jar-> JD-GUI yoluna modern bir alternatif olduğunu da ekleyebilirim! Sadece açık kaynak APK ve Jadx adlı DEX decompiler deneyin: sourceforge.net/projects/jadx/files Ayrıca burada çevrimiçi sürümü var: javadecompilers.com/apk
Andrew Rukin

1
Herhangi bir APK dosyasını kaynak koduna (okuma: yasal) izin verilir . Aşağıdaki soruya bakın: stackoverflow.com/questions/9674557/…
Rakete1111

1
Neden dosyalar apktoolgeri dönüyor smali? javaDosya nasıl alınır ?
rminaj

108

APKDosyanızı kodabilirsiniz, ancak büyük bir sorunla karşılaşırsınız:

yazdığınız kodu döndürmeyecektir. Bunun yerine, derleyici satır içi ne olursa olsun, rastgele adlar verilen değişkenlerin yanı sıra rastgele adlar verilen işlevlerle geri dönecektir. Yeniden başlatmak ve sahip olduğunuz koda geri yüklemek, baştan başlamaktan çok daha fazla zaman alabilir.

Ne yazık ki, böyle şeyler birçok projeyi öldürdü.
Gelecek için, CVS , SVN ve git gibi bir Sürüm Kontrol Sistemi öğrenmenizi önemle tavsiye ederim .

ve nasıl yedekleneceğini.


19
Dropbox gibi bir servis de yardımcı olacaktır.
Jeremy Logan

1
ve CD'leri yazmak için her zaman bir yol vardır
JerryGoyal

52

Üzerinde yeni bir uygulama da vardır Play Store'da o (çok sistem uygulamaları) bir apk decompile ve akıllı telefonunuzdaki kaynak kod hakkı görüntülemek için mümkün olduğu ile. Dosyaları SD kartınıza kaydeder, böylece bilgisayarınızda da görüntüleyebilirsiniz. Kök veya başka bir şey gerektirmez.

Sadece yükleyin ve eğlenin. Bence bu bir uygulamayı derlemenin en kolay yolu.


1
Bu en kolayı.
Midhun Vijayakumar

@MidhunVijayakumar bunu kullanarak kaynak kod dönüşümü apk yapabilir misiniz?
Sajeev

28

apktool deneyebileceğiniz en iyi şey. Onunla bazı xml kaydettik, ama dürüst olmak gerekirse .java kodu ile nasıl çalışacağını bilmiyorum.

Tek kodlayıcı olsanız bile bir kod havuzuna sahip olmanızı öneririm. Project Locker'ı kendi projelerim için kullanıyorum . Size ücretsiz svn ve git depoları verir.


Kaynakları ayıklamak istiyorsanız apktool'u vazgeçilmez bulacaksınız (yani bir Android uygulamasından görüntüler. Aslında, aracın hiç rakibi yok!) Apktool'un çevrimiçi bir sürümünü burada bulabilirsiniz:
www.javadecompilers.com/apktool

23

Bu iki makale, bir dosyanın kullanımının nasıl birleştirileceğini apktoolve dex2jaralınacağını APKve oluşturup çalıştırabilecek bir Eclipse projesinin nasıl oluşturulacağını açıklar.

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

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

Temel olarak:

  1. apktoolKaynak dosyalarını apk'den çıkarmak için kullanın
  2. dex2jarEclipse'nin beğeneceği bir formatta sınıfları içeren bir jar dosyası almak için kullanın .
  3. Bir Eclipse projesi oluşturun, kaynak dosyalara ve yeni jar dosyasına yönlendirin
  4. Jar dosyasını bir zip yardımcı programıyla açın ve mevcut kaynakları silin
  5. JDGuiKaynak kodu görüntülemek için jar dosyasını ile açın
  6. İhtiyacınız olan kaynak kodunu alın JDGui, Eclipse içindeki bir sınıfa yapıştırın ve değiştirin
  7. Bu sınıfı jar dosyasından silin (böylece aynı sınıfı birden çok kez tanımlamıyorsunuz)
  8. Çalıştır.

2
Bu sorunun hala cevaplandığını biliyorum, bir bilgi iletmek istiyorum: android apks için çevrimiçi bir decompiler var decompileandroid.com Yerel makineden apk yükleyin, biraz bekleyin, zip formatında kaynak kodunu indirin.
Snehal Masne

2
Kulağa hoş geliyor. Ve sonra decompileandroid web sitesinde de kaynağınızın bir kopyası var! Zeki!
DDSports

Bir soru, ben bir decompiled apk var ama jd gui java gerçek sınıfları olup olmadığını bilmiyorum, bir apk decompiled olup olmadığını biliyor musunuz gerçek Java sınıfları var mı?

21

apktool çalışacaktır. Kaynak kodunu (biraz korkutucu) çıkarmak için anahtar deposunu bile bilmenize gerek yok. Ana dezavantajı, kaynağın Java yerine Smali formatında sunulmasıdır. İcon ve main.xml gibi diğer dosyalar da mükemmel şekilde gelir ve en azından bunları kurtarmak için zaman ayırmaya değer olabilir. Nihayetinde, büyük olasılıkla Java kodunuzu sıfırdan yeniden yazmanız gerekecektir.

Apktool'u burada bulabilirsiniz . Sadece apktool ve uygun yardımcıyı indirin (Windows, Linux veya Mac OS için). Onları açmak için 7-zip gibi bir araç kullanmanızı tavsiye ederim.


16

Bunu yapmanın birkaç yolu var:

  1. Android Studio 3.0'da "Profil veya APK Hatalarını Ayıkla" özelliğini kullanın.

    Android Studio'da APK'ları açmanıza ve keşfetmenize olanak tanır. Sınıflar smali'ye ayrılır. Kaynaklar çıkarılmaz ve "Tanıma Git", "Tüm Referansları Bul" ve hata ayıklama kaynak kodu olmadan çalışmaz (android studio 3.0 canary 9). Bazı ek smali özellikleri smalidea ile çalışabilir .

    android-stüdyo

    dosya Seç

    kod

  2. Jadx kullanın .

    Jadx, verilen APK'daki kodu java kaynak dosyalarına dönüştürür.

    jdax-img

  3. Apktool kullanın .

    Apktool, belirli bir apk için kaynakları ayıklayan ve kodu smali'ye dönüştüren bir komut satırı aracıdır. Ayrıca apktool kullanarak yeniden derleyebilirsiniz. İşte bunun bir örneği:

    $ 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...

Ben jadx denedim, ama basit helloworld ile bile, java içine koda olmasına rağmen, Yine de, projeyi android stüdyosunda açmaya ve tekrar apk'ye derlemeye çalışarak, birçok nedenden dolayı başarısız olur (çoğaltma dosyaları, vb.). Java oluşturan, apk'ye derlenebilecek herhangi bir yöntem var mı?
ransh

1
@ transh Genellikle kodu okumak için jadx, sonra kodu değiştirmek için apktool kullanıyorum. apktool java oluşturmaz ancak yeniden derlemeye izin verir.
0xcaff

0xcaff, açıklama için teşekkürler. şimdi mantıklı. Android stüdyosunda bir decompile java derlemeye çalıştığından, çalışmadı.
ransh


7

Size .apk dosyalarını koda dönüştürmenin başka bir yolunu göstereceğim .

İlk 2 adımı " prankul garg " den takip edebilirsiniz . Yani başka fırsatlarınız var:

Aşama 3':

Bunu bulmak kolay "JD-GUI" indirin . Senin aç .jar "jd-GUI.exe" dosyayı. (Dosya> Dosya aç> ' .jar dosyanızı bulundu '). Bu yordamdan sonra, tüm kaynakları bir .zip dosyasına kaydedebilirsiniz .

Yani,

1 - .apk dosyasını .zip olarak yeniden adlandırmanız gerekir

2 - .dex dosyasının kodunu çözmelisiniz (isterseniz, .apk dosyasını dex2jar olarak kodlayın , bu mümkün)

3 - .jar dosyasını JD-GUI ile deşifre etmeniz gerekiyor


20
Bu cevap diğerlerinin yapmamasını ne sağlıyor?
Jørgen R

Gerçekten zip olarak yeniden adlandırmanız gerekmez. APK dosyasını doğrudan 7-zip ile açabilirim.
miva2

7

Aşağıda ONLINE aracı:

http://www.javadecompilers.com/apk

TÜM tek bir tıklama ile yapın: decompiled .java dosyaları + kaynaklar + xml (bir .zip dosyasında) çok iyi decompiler (diğer derleyicilerin "decompile edilemeyen" veya bazı fonksiyonlar içinde yorum döndürdüğü yerlerde / işlevlerde jadx dönüş java kodu) android birleştirici / makine kodu)


evet, bu harika, ancak işlev adları yerine, tüm işlev adlarını CS1001 ve benzeri olarak değiştirdi. Peki bunları nasıl tanıyabiliriz. ve bir şey daha, Bu ayrıştırılmış apk doğrudan Android stüdyo projemiz olarak kullanabilir miyiz, Çalışacak mı?
Zia Ur Rahman

daha sonra uygulamalarımızda işlevlerini kullanamazsak, bazılarının apk kodunu çözmek için hangi amaçla kullandığımızı.
Zia Ur Rahman

@ZiaUrRahman Bilmiyorum. Ancak benim durumumda algoritma analiz etmek için kod koda. Bu araçtan ayrıştırılmış kod tam otomatik bir şekilde android studio tarafından derlenebilir - ya da bazı "insan işleme" gerekir kontrol ediyor musunuz?
Kamil Kiełczewski

1
Ayrıştırılmış projeyi android stüdyosuna aktardım, ancak orada hiçbir not yok ve projenin birçok dosyası var, ancak çalışana kadar anlamadık. Sadece işe yaramadı. Ayrıştırılmış projeyi tamamen android stüdyosunda yapmam ve daha sonra bazılarının temel işlevlerini almam, sonra kendi projemde kullanmak / gömmek istiyorum. Bunu yapmanın bir yolu var mı?
Zia Ur Rahman

6

Bu site https://www.apkdecompilers.com/ bunu otomatik olarak yaptı.

İlk önce kabul edilen cevapta belirtilen siteyi denedim ama bu benim için işe yaramadı.


Java kaynak kodumu geri alamadım ... ekli dosya gibi somethins görünmek ve ..
iman kazemayni

@imankazemayni yukarıdaki bağlantıda, APK dosyanıza "göz atın" ve "APK'nızı Aç" ı tıklayın. Biraz zaman alacaktır ve kod şifrelenmemişse size kaynak kodu vermelidir.
M. Usman Khan

şifreleme üzerindeki multidex etkisinin ne olduğunu biliyor musunuz?
iman kazemayni

6

Kaynak kodunu almak için kişisel olarak Java Android Uygulamasını Göster'i öneriyorum . Sen gelen oyun mağazası veya indirebilirsiniz burada


Çoğunlukla çevrimiçi derleyiciler çalışmıyor, ancak bu uygulama çalışıyor. Teşekkür ederim
Sunil

4

Ters mühendislik 3. parti, kapalı, ikili Android uygulamaları için Apktool .

Kaynakları neredeyse orijinal forma deşifre edebilir ve bazı değişiklikler yaptıktan sonra bunları yeniden oluşturabilir.

Smali kodunun adım adım ayıklanmasını mümkün kılar. Ayrıca, proje benzeri dosya yapısı ve bina apk gibi bazı tekrarlanan görevlerin otomasyonu nedeniyle bir uygulama ile çalışmayı kolaylaştırır.

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


3

apktool gitmek için bir yoldur. Çevrimiçi apktool servisi de var: http://www.javadecompilers.com/apktool

Hizmetin 'çevrimiçi doğası' nedeniyle bazı sınırlamalar vardır: varlıkları ve manifest dosyasını ayıklayabilir ve araştırabilirsiniz, ancak şu anda uygulamayı yeniden derlemek imkansızdır.

Yine de, bu android uygulamasını 'açmak' için sorunsuz bir yoldur.


3

DexPatcher'ı deneyebilirsiniz . Android Studio ile bile entegre olur. Dahili olarak Apktool ve Dex2Jar kullanır .
Bu araçları bağımsız olarak da kullanabilirsiniz. Apktool apk decompiles ve .dex dosyalarını ayıklar, bu da Dex2Jar kullanarak kavanoza dönüştürülebilir. Jar, JD-GUI kullanılarak ayrıştırılabilir . Java kodunu bu aracın yardımıyla görebilirsiniz. Ayrıştırılmış kodun gerçek koda benzerliği garanti edilemez. Piyasada, kodu çözmeyi / anlamayı zorlaştırmak için kodu bozan bazı gelişmiş kod gizleme araçları vardır. Örneğin. Proguard


Merhaba DexPatcher Android Studio ile nasıl kullanılır?
ravi152

Yorumlarda her şeyi açıklayamıyorum. Google senin arkadaşın :) Bazı güzel youtube eğiticileri de var.
Lakshmikant Deshpande

2

Android apk ise durumunuza göre:

Durum1: Sertleşmiyor (Tencent Legu / Qihoo 360 / ... tarafından)

Choice1: çevrimiçi hizmeti kullanma

gibi:

www.javadecompilers.com kullanarak

git:

otomatik kod çözme apk java kaynak kodu

adımlar:

uploadapk dosyası + tıkla Run+ biraz bekleyin + Downloadzip almak için tıklayın + unzip ->

sources/com/{yourCompanyName}/{yourProjectName}

beklenen java kaynak kodunuz

Choice2: kendiniz çürütmek / çatlamak

kendi başınıza açmak / çatlamak için ilgili aracı kullanın:

Kullanım jadx/ jadx-guidönüştürme apkiçinjava sourcecode

jadx-0.9.0.zip'i indirin bin/jadx, sonra var hale getirin , sonra:

  • komut satırı modu:
    • terminal çalışmasında: jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
    • output_folder kodu çözülmüş sourcesveresources
      • sources/com/{yourCompanyName}/{yourProjectName} beklenen mi java sourcecode
  • GUI modu
    • çalıştırmak için çift tıklayın jadx-0.9.0/bin/jadx-gui(Linux jadx-gui.sh/ Windows jadx-gui.bat)
    • açık apkdosya
    • otomatik kod çözme olacaktır -> beklenen java kaynak kodunu görün
    • save all veya save as Gradle project

Örneğin:

Durum2: sertleş (Tencent Legu / Qihoo 360 / ... tarafından)

ana yöntemi 3 steps:

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

detaylı açıklama:

Aşama 1: apk/app to dex

aracı ( FDex2/ DumpDex) dökümü / kancasını kullan (bir veya daha fazla)dex çalışan uygulamasında dosyayı

adımlar:

çevre hazırla

dexçalışan uygulamayı boşaltmak

  • çalıştırmak FDex2sonra / yakalama sonradan etkinleştirmek Dex dışarı dikkatini çekin apk adını tıklayın

  • (telefon / emülatörde) uygulamanızı çalıştırın
  • bulmak ve tüm apk kaynakları dökümü dışarı kopyalamak /data/data/com/yourCompanyName/yourProjectName
    • Kök klasöründe normalde birkaç dexdosya bulur

Adım 2: dex to jar

tool ( dex2jar) dönüştürmesini (belirli, uygulama mantığını içeren) dexdosyayı jardosyaya kullan

indir dex2jar got dex-tools-2.1-SNAPSHOT.zip , var unzip dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh, sonra

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

Örneğin:

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

Aşama 3: jar to java src

araçlardan birini kullanın:

dönüştürme jariçinjava src

kavanozdan java src dönüştürme etkisi için:

Jadx> Procyon> CRF>>JD-GUI

bu yüzden kullanmanızı öneririz: Jadx/jadx-gui

adımlar:

  • çalıştırmak için çift tıklayın jadx-gui
  • açık dexdosya
  • File -> save all

Örneğin:

ihraç edilen java src:


Daha ayrıntılı açıklama benim online ebook Çince öğretici görebilirsiniz:


2

Android stüdyosu herhangi bir apk dosyasını analiz etmenizi sağlar.

1 - Yapı menüsünden apk analiz seçeneğini seçin ve apk dosyasını seçin. 2 - Bu, classes.dex dosyası ve diğer dosyalar ile sonuçlanacaktır. 3 - Klasörler, paketler, kütüphaneler ve dosyaların listesini veren classes.dex'i tıklayın. 4 - Gönderen ve android stüdyo ayarları "Dex to Jar" adlı bir eklenti yükler. 5 - çıkarılan projenizin herhangi bir etkinlik dosyasına tıklayın ve yapı menüsünden kavanozdan dex'i seçin.

Bu, java dosyanızın gerçek koduyla sonuçlanır.

Şerefe.


1

En basit yol Apk OneClick Decompiler kullanmaktır. Bu, APK'ları (android paketleri) kaynak koda dönüştürmek ve sökmek için bir araç paketidir.

ÖZELLİKLERİ

  • Tüm özellikler Windows'un sağ tıklama menüsüne entegre edilmiştir.
  • APK sınıflarını Java kaynak kodlarına dönüştürün.
  • APK'yi smali kodunu çözmek ve kaynaklarını çözmek için sökün.
  • APK'yı sağ tıklayarak telefona yükleyin.
  • APK kodunu ve / veya kaynakları düzenledikten sonra APK'yı yeniden derleyin. Yeniden derleme sırasında:
  • PNG görüntülerini optimize etme
  • İşaretleri imzala
  • zipalign

GEREKSİNİMLER

Java Runtime Environment (JRE) kurulu olmalıdır.

Bu linkten indirebilirsiniz Apk OneClick Decompiler

Keyfini çıkarın.


1

Ben en basit yöntem olarak aşağıdakileri buldum:

  1. App.apk dosyasını app.zip olarak yeniden adlandırın (Uzantıyı apk'den zip'e değiştirin)
  2. Zip dosyasını bir klasöre ayıklayın
  3. Classes.dex dosyasında bulunan kaynak kodunu okumak için JADX aracını kullanın .

1

Bunun için bir uygulama var ve genellikle sadece birkaç tıklama alır ve işiniz bitti. https://github.com/Nuvolect/DeepDive-Android

  1. Uygulamalar'ı seçin, "Yüklü Uygulamalar" altında uygulamanızı seçin. Orada değilse APK'yı yükleyebilirsiniz.
  2. "APK Çıkar" ı seçin
  3. "APK Paketi Aç" ı seçin
  4. "Jadx ile Ayrıştır" ı seçin. Cihazınızın hızına bağlı olarak bu işlem birkaç saniye veya birkaç dakika sürebilir

Bundan sonra kaynak koduna göz atabilir, elFinder ile başka bir bilgisayara indirebilir veya Lucene kullanarak arayabilirsiniz.

Jadx'a ek olarak CFR ve Fernflower ayrıştırıcıları vardır.


0

Dex2jar'ın çalışmayacak bir apk'ye karşı fedora 31 dizüstü bilgisayarda çalışmasını sağlamaya çalışıyorum günlerdir kendimi çıldırıyorum. Bu python 3 betiği birkaç dakika içinde hile yaptı ve jd-gui'yi yükleyerek sınıf dosyalarını insan tarafından okunabilir hale getirdi.

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

https://github.com/Storyyeller/enjarify

özellikle, ben ne koştu:

# 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

Şimdi sınıf dosyalarını almak için aşağıdakileri rum edebilmelidir:

$> enjarify yourapkfile.apk

Ve jd-gui'yi başlatmak için:

$> jd-gui

O zaman sınıf dosyalarınızı açın!



0

Bu aracı kullanın http://www.javadecompilers.com/

Ancak son zamanlarda, yeni bir dekomplör dalgası piyasaya çıktı: Procyon, CFR, JD, Fernflower, Krakatau, Candle.

İşte bu sitede sunulan ayrıştırıcıların bir listesi:

CFR - Ücretsiz, kaynak kodu yok, http://www.benf.org/other/cfr/ Yazar: Lee Benfield

Çok iyi güncellenmiş decompiler! CFR, Java 9 modülleri, Java 8 lambdas, Java 7 String anahtarları vb. Gibi modern Java özelliklerini koda edebiliyor.

JD - sadece ticari olmayan kullanım için ücretsiz, http://jd.benow.ca/ Yazar: Emmanuel Dupuy

Eclipse ve IntelliJ için kendi görsel arayüzü ve eklentileri vardır. C ++ ile yazılmış, çok hızlı. Java 5'i destekler.

Procyon - açık kaynak, https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler Yazar: Mike Strobel

Fernflower - açık kaynak, https://github.com/fesh0r/fernflower Yazar: Egor Ushakov

2015 Çok umut verici analitik Java decompiler Güncellenmiş, şimdi IntelliJ 14. (ayrılmaz bir parçası haline gelir https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler ) sürüm 6'ya kadar Java Destekler (Ek açıklamalar, jenerikler, numaralandırmalar)

JAD - burada sadece tarihsel nedenlerden dolayı verilmiştir. Ücretsiz, hiçbir kaynak kodu mevcut, jad indir ayna Yazar: Pavel Kouznetsov

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.