Dekompilacja .dex -> .jar -> class -> java i ponowna kompilacja

0

Witam
Zdekompilowałem APK za pomocą apktool uzyskując wszystkie pliki aplikacji. Plik classes.dex zdekompilowałem za pomocą dex2jar. Uzyskałem plik .jar, który otworzyłem JD GUI i uzyskałem kod w postaci .class. W JDGUI zapisałem to wszystko jako pliki java i gotowe - mogę wszystko ładnie edytować.

Problem jest taki, że nie wiem jak odwrócić ten cały proces. W jaki sposób mam to z powrotem przerobić na .class i na koniec na .dex, żebym mógł podmienić stary plik .dex na nowy?

0

Zrób z tego projekt w jakimś Android Studio i skompiluj. Ale licz sie z tym że może się to nie bardzo udać bo dekompilacja często nie jest doskonała, a jeśli ktoś ten kod obsufkował to już w ogóle. Bezpieczniej często jest tego dexa przerobić na smali i modyfikować bajtkod a potem znów złożyć z tego dexa.

0

Oj ręczne włożenie tego do Android Studio będzie raczej nie możliwe, bo nie jest to prosta aplikacja o trzech skryptach i pięciu obrazkach. Wziąłem sobie za zadanie przerobienie kilku rzeczy w aplikacji Facebook Messenger. Przerobiłem lekko kod tak jak mi się podoba, myślę że powinno działać, jednak jakoś trzeba to z powrotem wpakować w tego dexa.

0

No to nie, to zapomnij o czymś takim. Jeśli w ogóle to myśle że jedyna sensowna opcja to zabawa w modyfikowanie Smali i pakowanie dex->smali i smali->dex
Ewentualnie zobacz czy ten kawałek który masz da się skompilować w oderwaniu od reszty i dostać z niego smali ;)

0

Wypakowałem ten .dex na pliki .smali i z powrotem zrobiłem z tego .dex. Po kompilacji aplikacja działa.

Teraz tylko jak mam z mojego .java zrobić plik .smali ? Próbowałem różnych magicznych programików z krańca internetu, ale niezbyt to działa.

0

Ale po co kombinować? Skompiluj po prostu ten kod w Android Studio, dostaniesz z tego dexa i z tego dexa wyciągasz sobie smali :) Ewentualnie dla uproszczenia jest plugin to Android Studio -> https://github.com/ollide/intellij-java2smali

1 użytkowników online, w tym zalogowanych: 0, gości: 1