Bilinmeyen bir APK dosyasından Java kodu (kaba ama yeterince iyi) üretecek iki kullanışlı araç vardır.
dex2jar aracını dex2jar adresinden indirin.
APK dosyasını JAR'a dönüştürmek için aracı kullanın:
$ d2j-dex2jar.bat demo.apk
dex2jar demo.apk -> ./demo-dex2jar.jar
JAR dosyası oluşturulduktan sonra, JAR dosyasını açmak için JD-GUI kullanın. Java dosyalarını göreceksiniz.
Çıktı şuna benzer olacaktır:
Pek sayılmaz. smali]1 veya dex2jar gibi yarı insan tarafından okunabilir çıktı üretecek bir dizi dex disassembler/decompiler paketi vardır (dex2jar durumunda, JD-GUI gibi bir şey kullanarak java kodunu alabilirsiniz, ancak işlem mükemmel değildir ve kaynak kodunuzu% 100 yeniden oluşturmanız çok olası değildir. Bununla birlikte, kaynak ağacınızı yeniden oluşturmaya başlamanız için size bir yer sağlayabilir.
Evet, projenizi geri alabilirsiniz. Sadece yourproject.apk
dosyasını yourproject.zip
olarak yeniden adlandırın ve bu ZIP dosyasının içindeki tüm dosyaları alacaksınız. Dosya uzantısını .apk'dan .zip'e değiştiriyoruz. Bu ZIP dosyasından classes.dex
dosyasını çıkarın ve aşağıdaki şekilde derleyin.
İlk olarak, DEX üzerindeki tüm (derlenmiş) sınıfları bir JAR'a çıkarmak için bir araca ihtiyacınız vardır. Çinli bir öğrenci tarafından yapılmış dex2jar adında bir araç var.
Ardından, JAR'daki sınıfları kaynak koda dönüştürmek için JD-GUI kullanabilirsiniz. Elde edilen kaynak kodu, dex2jar bazı optimizasyonlar uyguladığı için oldukça okunabilir olmalıdır.