Bir .apk dosyasından Kaynak Kodunu al? [kapalı]


21

Bir .apk dosyasına sahip olmak, kaynak kodunu edinebilmemin bir yolu var mı?


7
Ondan önce, paketin açık kaynak olup olmadığını kontrol ettiniz mi?
ott--

Bir .apk sadece bir .zip dosyasıdır. Ama ne yazık ki 'sürüm' için oluşturulan herhangi bir uygulama muhtemelen ProGuard tarafından korunacaktır .
Daniel López,

@MatthewRead Op, kodu bir API'den alıp alamayacağını soruyor ve ben bu olgunun ne dendiğini ve en azından benzer bir uygulama yapmaktan kaçınmanın yollarını cevapladım. Kodu almamayı nasıl önleyeceğini söylemedi. Evet, soruyu cevaplıyor.
İnsan Varlığı

Yanıtlar:



11

Şanslıysanız ve .apkdosyanız Proguard veya analog tarafından korunmadıysa , APK aracını kullanabilirsiniz . Ters mühendislik 3. parti, kapalı, ikili Android uygulamaları için bir araçtır.


Apktool, Java kodunu değil, yalnızca Smali Kodunu oluşturur - bu büyük bir farktır.
Robert

2

Gönderen SO içinde Parnkul Garg tarafından comunity wiki biri :


.Apk dosyalarının kod çözme prosedürü, adım adım metodu:

Aşama 1:

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

  2. Şimdi bu .apk dosyasının uzantısını .zip olarak yeniden adlandırın (örneğin, dosyaadı.apk'dan dosyaadı.zip olarak yeniden adlandırın) ve kaydedin. Şimdi classes.dex dosyalarına vb. Erişebilirsiniz. Bu aşamada çizilebilir dosyaları görebiliyorsunuz ancak xml ve java dosyalarını göremiyorsunuz.

Adım 2:

  1. Şimdi bu .zip dosyasını aynı klasöre çıkartın (veya YENİ FOLDER).

  2. Dex2jar'ı indirin ve aynı klasöre (veya NEW FOLDER) çıkartı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İ FOLDER) değiştirin. Ardından yazıp d2j-dex2jar classes.dexenter tuşuna basın. Şimdi, aynı klasörde classes.dex.dex2jar dosyası var.

  5. Java-decompiler'i 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ını alırsınız.

  6. Tüm bu sınıf dosyalarını kaydedin (jd-gui'de, Dosya -> Tüm Kaynakları Kaydet'e tıklayın) src ismine göre. Bu aşamada java kaynağını elde edersiniz, ancak .xml dosyaları hala okunamaz durumdadır, bu yüzden devam edin.

Aşama 3:

Şimdi başka bir yeni klasör aç

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

  2. En son sürümünü indirin apktool VE pencereyi yüklemek apktool (her ikisi de aynı bağlantıdan indirilebilir) ve aynı klasöre koyun

  3. Framework-res.apk dosyasını indirin ve aynı klasöre yerleştirin (Tüm apk dosyası bu dosyaya ihtiyaç duymaz, ancak zarar vermez)

  4. Bir komut penceresi aç

  5. APKtool'un kök dizinine gidin ve aşağıdaki komutu yazın: apktool if framework-res.apk

  6. apktool d myApp.apk (burada myApp.apk, kodunu çözmek istediğiniz dosya adını belirtir)

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

4. Adım:

Her iki klasörün içeriğini (bu durumda her iki yeni klasörü de) tek bir klasöre kopyalamak herhangi bir adım değildir.

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

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.