Java >> Java Tutorial >  >> Java

Dekompilieren Sie .smali-Dateien auf einem APK

Nein, APK Manager dekompiliert der .dex Datei in .smali und binär .xml zu menschenlesbarem xml.

Die Sequenz (basierend auf APK Manager 4.9) ist 22 um das Paket auszuwählen, und dann 9 um es zu dekompilieren. Wenn Sie 1 statt 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 zu .java zu dekompilieren Dateien und höchstwahrscheinlich wird es keine sein. Es gibt eine Alternative, die dex2jar verwendet um die dex-Datei in einen .class umzuwandeln Datei und verwenden Sie dann einen JAR-Decompiler (wie das kostenlose jd-gui ) in 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/

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


Es gibt ein neues plattformübergreifendes (Java) und Open-Source-Tool, mit dem Sie dies tun können. Besuchen Sie einfach https://bytecodeviewer.com

=========

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


dex2jar hilft, Ihre apk zu dekompilieren, aber nicht zu 100%. Sie werden einige Probleme mit .smali-Dateien haben. Dex2jar kann es nicht in 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/


Java-Tag