Czy mając plik apk, czy jest jakiś sposób, aby uzyskać jego kod źródłowy?
Czy mając plik apk, czy jest jakiś sposób, aby uzyskać jego kod źródłowy?
Odpowiedzi:
Nawet jeśli użyto ProGuard, nadal możesz uzyskać ciekawe informacje. Oto pytanie StackOverflow ze szczegółowym wyjaśnieniem: Android: Pobieranie kodu źródłowego z pliku APK . Film na YouTube ze szczegółowym przewodnikiem . I wpis na blogu na ten temat: Jak pobrać kod źródłowy z pliku APK Androida .
Jeśli masz szczęście, a Twój .apk
plik nie był chroniony przez Proguard lub analogowy, możesz użyć narzędzia APK . Jest to narzędzie do inżynierii wstecznej zewnętrznych, zamkniętych, binarnych aplikacji na Androida.
Z jednego z wiki społeczności autorstwa Parnkul Garg w SO :
Procedura dekodowania plików .apk, metoda krok po kroku:
Utwórz nowy folder i skopiuj plik .apk, który chcesz zdekodować.
Teraz zmień nazwę rozszerzenia tego pliku .apk na .zip (np. Zmień nazwę z filename.apk na filename.zip) i zapisz go. Teraz możesz uzyskać dostęp do plików klas.dex itp. Na tym etapie możesz wyświetlić pliki rysunkowe, ale nie pliki XML i Java, więc kontynuuj.
Teraz rozpakuj ten plik .zip w tym samym folderze (lub NOWYM FOLDERU).
Pobierz dex2jar i wypakuj go do tego samego folderu (lub NOWEGO FOLDERU).
Przenieś plik klas.dex do folderu dex2jar.
Teraz otwórz wiersz polecenia i zmień katalog na ten folder (lub NOWY FOLDER). Następnie napisz d2j-dex2jar classes.dex
i naciśnij enter. Teraz masz plik klas.dex.dex2jar w tym samym folderze.
Pobierz dekompilator Java , kliknij dwukrotnie plik jd-gui, kliknij plik otwarty i otwórz plik class.dex.dex2jar z tego folderu: teraz masz pliki klas.
Zapisz wszystkie pliki klas (w jd-gui kliknij Plik -> Zapisz wszystkie źródła) według nazwy src. Na tym etapie otrzymujesz źródło Java, ale pliki .xml są nadal nieczytelne, więc kontynuuj.
Teraz otwórz kolejny nowy folder
Umieść plik .apk, który chcesz zdekodować
Pobierz najnowszą wersję apktool ORAZ okno instalacji apktool (oba można pobrać z tego samego linku) i umieść je w tym samym folderze
Pobierz framework-res.apk i umieść go w tym samym folderze (nie wszystkie pliki apk potrzebują tego pliku, ale nie boli)
Otwórz okno poleceń
Przejdź do katalogu głównego APKtool i wpisz następujące polecenie:
apktool if framework-res.apk
apktool d myApp.apk
(gdzie myApp.apk oznacza nazwę pliku, który chcesz zdekodować)
teraz masz folder plików w tym folderze i możesz łatwo odczytać pliki XML apk.
To nie jest żaden krok, wystarczy skopiować zawartość obu folderów (w tym przypadku obu nowych folderów) do jednego
i ciesz się kodem źródłowym ...