wake-up-neo.com

Dekompilieren Sie .smali-Dateien auf einem APK

Ich habe APK Manager heruntergeladen, mit dem ich APK-Dateien entpacken kann.

Es wird jedoch nur entpackt und die .smali-Datei nicht in .Java dekompiliert.

Ist es möglich, das .smali in .java zu dekompilieren?

119
BimoZX

Nein, APK Manager dekompiliert die Datei .dex In .smali Und binäres .xml In lesbares XML .

Die Reihenfolge (basierend auf APK Manager 4.9) ist 22 , um das Paket auszuwählen, und dann 9 um es zu dekompilieren. Wenn Sie 1 anstelle von 9 drücken, entpacken Sie es einfach (nur nützlich, wenn Sie PNG-Bilder austauschen möchten).

Es ist kein Tool verfügbar, um zurück in .Java - Dateien zu dekompilieren, und höchstwahrscheinlich wird es auch keines geben. Es gibt eine Alternative, bei der dex2jar verwendet wird, um die Dex-Datei in eine .class - Datei umzuwandeln, und anschließend einen JAR-Dekompilierer verwendet wird ( wie die freie jd-gui ) zu Klartext Java. Der Prozess ist jedoch alles andere als optimal und generiert keinen funktionierenden Code, aber er ist anständig genug, um ihn lesen zu können.

dex2jar: https://github.com/pxb1988/dex2jar

jd-gui: http://jd.benow.ca/

Edit: Ich wusste, dass es hier irgendwo in SO eine Frage mit sehr ähnlichen Antworten gibt ... Dekompilieren von DEX in Java Quellcode

100
Aleadam

Es gibt ein neues Cross-Plateform Java) und Open-Source-Tool, mit dem Sie dies tun können. Schauen Sie einfach unter --- (https://bytecodeviewer.com

enter image description here

=========

BEARBEITEN: Ab April 2017 gibt es ein neues Open-Source-Tool von Google, das genau das tun soll, wonach wir gesucht haben => https://github.com/google/Android-classyshark

27
Gomino

dex2jar hilft deine apk zu dekompilieren aber nicht 100%. Sie werden einige Probleme mit .smali-Dateien haben. Dex2jar kann es nicht nach Java konvertieren. Ich kenne eine Anwendung, die Ihre apk-Quelldateien dekompilieren kann und keine Probleme mit .smali-Dateien hat. Hier ist ein Link http://www.hensence.com/en/smali2Java/

26
Daryn

Meine Empfehlung ist Virtuous Ten Studio . Das Tool ist kostenlos, aber sie schlagen eine Spende vor. Es kombiniert alle notwendigen Schritte (APK entpacken, baksmaliing, dekompilieren usw.) in einem benutzerfreundlichen UI-basierten Importprozess. Innerhalb von fünf Minuten sollten Sie Java Quellcode haben, weniger, als erforderlich ist, um die Befehlszeilenoptionen eines der oben genannten Tools zu ermitteln.

Das Dekompilieren von smali in Java ist ein ungenauer Prozess, besonders wenn die smali-Artefakte einen Verschleierer durchlaufen haben. Sie können mehrere Dekompilierer im Web finden, aber nur einige von ihnen werden noch beibehalten dekompilierter Code als andere. Lesen Sie "besser" als "verständlicher" als andere. Erwarten Sie nicht, dass der rückentwickelte Java) - Code sofort kompiliert wird. Virtuous Ten Studio wird mit geliefert Mehrere freie Java Decompiler eingebaut, so dass Sie leicht verschiedene Decompiler ausprobieren können (der "Generate Java source" -Schritt), um zu sehen, welcher das Beste für Sie ist Dies erspart Ihnen die Zeit, diese Dekompilierer selbst zu finden und herauszufinden, wie Sie sie einsetzen können.

Als Ausgabe erhalten Sie unter anderem eine Ordnerstruktur, die den gesamten dekompilierten Java Quellcode enthält. Sie können diesen dann in IntelliJ IDEA oder Eclipse for Weitere Bearbeitung, Analyse (z. B. Zur Definition gehen, Verwendungen suchen) usw.

4
Christoph

Ich stimme dem zu.

Dex2jar generiert eine WORKING-JAR, die Sie als Projektquelle hinzufügen können, mit den XML-Dateien, die Sie von apktool erhalten haben.

JDGUI generiert jedoch .Java-Dateien, die häufig Fehler enthalten.

Es hat etwas mit Code-Verschleierung zu tun, denke ich.

1
Avijit