Dekompiluj plik APK, zmodyfikuj go, a następnie przekompiluj
Muszę zmodyfikować istniejący APK, zmodyfikować źródła, a następnie przekompilować go.
- mogę go dekompilować używając dex2jar lub apktool, działa świetnie
- z pliku jar mogę uzyskać źródła Javy (używając JD-gui)
- wtedy mogę zmodyfikować pliki Javy
Ale teraz chciałbym wiedzieć, jak przekompilować pliki Javy i umieścić je z powrotem w pliku jar! (część jar powinna być łatwa, głównym problemem wydaje się być rekompilacja plików java dla android)
Wiem, że innym rozwiązaniem jest użycie apktool, a następnie MODYFIKACJA PLIKÓW smali, ale wydaje się to być bardzo skomplikowane, gdy chcemy dodać dużo kodu!
Moja aplikacja jest podstawowym a HelloWorld whitout obfuscation.
9 answers
Dzięki Chrisowi Jester-Young udało mi się to zrobić!
Myślę, że sposób, w jaki udało mi się to zrobić, zadziała tylko na naprawdę prostych projektach:
- z Dex2jar otrzymałem słoik.
- z JD-gui konwertuję mój Jar z powrotem na pliki Java.
-
Z apktool mam manifest Androida i pliki ressources
-
W Eclipse tworzę nowy projekt z tymi samymi ustawieniami co Stary (sprawdzanie wszystkich informacji w manifeście plik)
- Kiedy projekt jest tworzony, zamieniam wszystkie zasoby i manifest na te, które uzyskałem za pomocą apktool
- wklejam pliki Javy wydobyte z Jar w folderze src (dotyczy pakietów)
- modyfikuję te pliki za pomocą tego, czego potrzebuję
- wszystko się układa!
/!\ upewnij się, że usunąłeś Stary apk z urządzenia zostanie wyrzucony błąd stwierdzający, że podpis apk nie jest taki sam jak stary!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-11 13:35:27
Wiem, że odpowiedź na to pytanie jest nadal, chciałbym przekazać informację.
Jest dekompilator online dla android apks
- Upload apk from local machine
- poczekaj chwile
- Pobierz kod źródłowy w formacie zip
Nie wiem, czy to wiarygodne.
@darkheir odpowiedź jest ręcznym sposobem dekompilacji apk. Pomaga nam zrozumieć różne etapy tworzenia Apk.
Inny De-kompilator APK online @Andrew Rukin : http://www.javadecompilers.com/apk
Nadal warto. Czapki z głów dla twórców.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-16 14:55:38
Najpierw pobierz narzędzie dex2jar z poniższego linku http://code.google.com/p/dex2jar/downloads/list
-
Rozpakuj utworzony plik
dex2jar
folder -
Teraz możesz wybrać plik apk i zmienić jego rozszerzenie .apk do .zip po zmianie rozszerzenia wydaje się być plikiem zip następnie rozpakuj ten plik zip, który znalazłeś
classes.dex
plik -
Teraz wybierz zajęcia.plik dex i umieść go w
dex2jar
folderze -
Teraz otwórz cmd okno i wpisz ścieżkę folderu
dex2jar
-
Teraz wpisz polecenie
dex2jar.bat classes.dex
i naciśnij Enter -
Teraz otwórz
dex2jar
folder, który znalazłeśclasses_dex2jar.jar
plik Następnie pobierz narzędzie Java decompiler z poniższego linku http://java.decompiler.free.fr/?q=jdgui
-
Ostatni krok Otwórz plik
classes_dex2jar.jar
W java decompiler tool teraz możesz zobaczyć kod apk
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-20 12:54:50
Wiem, że odpowiedź na to pytanie została udzielona i nie staram się tutaj udzielić lepszej odpowiedzi. Po prostu podzielę się moim doświadczeniem w tym temacie.
Kiedyś zgubiłem kod i miałem tylko plik apk
. Zdekompilowałem go za pomocą poniższego narzędzia i to sprawiło, że mój dzień.
To moje ulubione narzędzia do robienia że:
I aby uzyskać apk z google play możesz go wygooglować lub sprawdzić te strony:
W dniu zamieszczenia tej odpowiedzi przetestowałem wszystkie linki i działało idealnie dla mnie.
Uwaga: dekompilacja Apk nie jest skuteczna w przypadku kodu proguarded. Ponieważ Proguard kurczy i zaciemnia kod i Zmień nazwy klas na nonsensowne nazwy, które sprawiają, że dość trudno zrozumieć kod.
Bonus:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-16 14:15:07
dex2jar z JD-gui Da wszystkie pliki źródłowe Javy, ale nie są one dokładnie takie same. Są prawie równoważne .pliki klas (Nie 100%). Więc jeśli chcesz zmienić kod dla pliku apk:
Dekompilacja przy użyciu apktool
apktool wygeneruje plik smali (Assembly version of dex) dla każdego pliku java o tej samej nazwie.
Smali jest zrozumiałe dla człowieka, dokonać zmian w odpowiednich plik, przekompiluj używając tego samego apktool(
apktool b Nw.apk <Folder Containing Modified Files>
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-06 06:01:20
To jest sposób:
-
Użycie {[2] } do dekodowania:
$ apktool d -f {apkfile} -o {output folder}
-
Następnie, używając JADX (na github.com/skylot/jadx)
$ jadx -d {output folder} {apkfile}
2 narzędzia rozpakowują i dekompilują do tego samego folderu wyjściowego.
Łatwy sposób: za pomocą Dekompilatora APK online
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-15 01:20:18
Należy zmienić rozszerzenie pliku z .apk
na .zip
. Następnie rozpakuj pliki, zmodyfikuj je, a następnie skompresuj do .zip
i pamiętaj, aby zmienić nazwę rozszerzenia z powrotem na .apk
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-16 15:11:43
Wiem, że odpowiedź na to pytanie jest nadal i nie staram się być mądry tutaj. Będę chciał podzielić się inną metodą na ten temat.
Pobierz aplikacje z apk grail
APK Grail dostarczający bezpłatny plik zip aplikacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-01 06:18:30
Użyj luckypatcher i usunąć swoją weryfikację licencji niż nie trzeba podpisywać apk. Użyj WINRAR, aby zastąpić zmodyfikowany kod źródłowy bez dekompilacji apk.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-16 16:05:39