web-dev-qa-db-ger.com

Reverse Engineering von einer APK-Datei in ein Projekt

Ich habe versehentlich mein Projekt von Eclipse gelöscht, und ich habe nur noch die APK -Datei, die ich auf mein Handy übertragen habe. Gibt es eine Möglichkeit, den Export einer Anwendung in die .apk-Datei umzukehren, damit ich mein Projekt zurückerhalten kann?

200
Marko Cakic

Es gibt zwei nützliche Tools, die Java-Code (grob aber gut genug) aus einer unbekannten APK-Datei generieren.

  1. Laden Sie das dex2jar-Tool von dex2jar herunter.
  2. Verwenden Sie das Tool, um die APK-Datei in JAR zu konvertieren:

    $ d2j-dex2jar.bat demo.apk
    dex2jar demo.apk -> ./demo-dex2jar.jar
    
  3. Sobald die JAR-Datei erstellt wurde, öffnen Sie die JAR-Datei mit JD-GUI . Sie sehen die Java-Dateien.

Die Ausgabe wird ähnlich sein:

 JD GUI

256
rahul

Als Erstes empfehle ich this video. Damit werden alle Ihre Zweifel beseitigt 

Wenn nicht, bitte durchgehen 

Procedure for decoding .apk files, step-by-step method:

Step 1:

Erstellen Sie einen neuen Ordner und legen Sie eine .apk-Datei (die Sie dekodieren möchten) in diesem Ordner ab. Benennen Sie nun die Erweiterung dieser .apk-Datei in .Zip um (zB: Umbenennen von Dateiname.apk in Dateiname.Zip) und speichern Sie sie.

Bei Problemen beim Konvertieren in .Zip verweist bitte auf link

Nachdem Sie jetzt .Zip erhalten haben, erhalten Sie classes.dex-Dateien usw. Zu diesem Zeitpunkt können Sie gezeichnete, aber keine xml- und Java-Dateien sehen. Fahren Sie also fort 

Step 2:

Jetzt entpacken Sie diese Zip-Apk-Datei im selben Ordner. Laden Sie jetzt dex2jar von diesem herunter - link

und extrahieren Sie es in den gleichen Ordner. Öffnen Sie nun die Eingabeaufforderung und wechseln Sie das Verzeichnis in diesen Ordner. 

Dann schreibe dex2jar classes.dex und drücke Enter. Jetzt erhalten Sie classes.dex.dex2jar-Datei im selben Ordner.

Dann downloade Java-Dekompilierer

Und jetzt doppelklicken Sie auf jd-gui und klicken Sie auf geöffnete Datei. Dann classes.dex.dex2jar Datei aus diesem Ordner öffnen. Jetzt erhalten Sie Klassendateien und speichern alle diese Klassendateien (klicken Sie auf Datei und dann auf "Alle Quellen speichern" in jd-gui). Extrahieren Sie die Zip-Datei (classes_dex2jar.src.Zip) und Sie erhalten alle Java-Dateien der Anwendung.

Zu diesem Zeitpunkt erhalten Sie Java-Quelle, aber die XML-Dateien sind immer noch nicht lesbar. Fahren Sie daher fort.

Step 3:

Öffnen Sie jetzt einen neuen Ordner und legen Sie diese Dateien ab

  1. legen Sie die .apk-Datei ab, die Sie decodieren möchten

  2. laden Sie Apktool für windows v1.x und Apktool herunter. 

installieren Sie das Fenster mit Google und legen Sie es in demselben Ordner ab

  1. laden Sie die Framework-res.apk-Datei mit Google herunter und legen Sie sie im selben Ordner ab (Nicht alle APK-Dateien benötigen die Framework-Res.apk-Datei.)

  2. Öffnen Sie ein Befehlsfenster

  3. Navigieren Sie zum Stammverzeichnis von APKtool und geben Sie den folgenden Befehl ein: apktool if framework-res.apk.

Der obige Befehl sollte Framework installed ... ergeben.

  1. apktool d "appName" .apk ("appName" bezeichnet eine Anwendung, die Sie dekodieren möchten). Jetzt erhalten Sie einen Dateiordner in diesem Ordner. Jetzt können Sie auch XML-Dateien problemlos lesen.

Step 4: Schließlich haben wir den res/ sowie den Java-Code des Projekts erhalten, das unser Ziel beim Start ist. 

P.S. Wenn Sie nicht in der Lage sind, den res-Ordner anhand der obigen Schritte zu erhalten, installieren Sie bitte die neue apktool .

  • Ist Java 1.7 installiert? Apktool 2.x installieren
  • Ist Java 1.6 oder höher installiert? Apktool 1.x installieren

Enjoy and happy coding

72
Swapnil Sonar

Keine Software und keine zu großen Schritte.

Laden Sie einfach Ihre APK hoch und erhalten Sie alle Ressourcen von dieser Website.

https://www.apkdecompilers.com/

Diese Website dekompiliert den in APK-Dateien eingebetteten Code und extrahiert alle anderen Assets in der Datei.

note: Ich dekompiliere meine APK-Datei und hole Code innerhalb einer Minute von dieser Website.

Update 1:

Ich habe eine andere Online-Decompiler-Site gefunden.

http://www.javadecompilers.com/apk/ - Funktioniert nicht ständig und fragt nach Popups 

Update 2:

Ich habe im Play Store eine apk-Dekompiler-App gefunden.

https://play.google.com/store/apps/details?id=com.njlabs.showjava

Wir können die APK-Dateien in unserem Android-Telefon dekompilieren. Außerdem können wir die Java- und XML-Dateien in dieser Anwendung anzeigen

Update 3:

Wir können eine andere Option Analyze APK aus der Android Studio 2.2-Version verwenden

Erstellen -> APK analysieren -> Wählen Sie Ihre APK aus -> Sie erhalten Ergebnisse 

 enter image description here

50
Ranjith Kumar

Es gibt einen neuen Weg, dies zu tun.

Android Studio 2.2 hat APK Analyzer, es wird viele Informationen über apk geben, checkt es hier: - http://Android-developers.blogspot.in/2016/05/Android-studio-22-preview-new-ui. html

Ap

5
Brijesh Masrani

Nicht wirklich. Es gibt eine Reihe von Dex-Disassembler Decompiler-Suites/- wie smali oder dex2jar , die eine nur halb lesbare Ausgabe erzeugen (im Fall von dex2jar können Sie Java-Code durch die Verwendung von etwas erhalten Wie JD-GUI Aber der Prozess ist nicht perfekt und es ist sehr unwahrscheinlich, dass Sie Ihren Quellcode zu 100% neu erstellen können, aber es könnte Ihnen einen Platz geben, mit dem Sie den Quelltextbaum neu erstellen können.

4
Chris Thompson

Ja, Sie können Ihr Projekt zurückbekommen. Benennen Sie die yourproject.apk-Datei einfach in yourproject.Zip um und Sie erhalten alle Dateien in dieser Zip-Datei. Wir ändern die Dateierweiterung von .apk in .Zip. Extrahieren Sie die classes.dex-Datei aus dieser ZIP-Datei und dekompilieren Sie sie auf folgende Weise.

Zunächst benötigen Sie ein Werkzeug, um alle (kompilierten) Klassen auf dem DEX in ein JAR zu extrahieren .. _. Es gibt eines mit dem Namen dex2jar .

Anschließend können Sie JD-GUI verwenden, um die Klassen in der JAR-Datei in Quellcode zu dekompilieren. Der resultierende Quellcode sollte gut lesbar sein, da dex2jar einige Optimierungen anwendet.

3
Star

Befolgen Sie dazu die unten aufgeführten Schritte oder verwenden Sie einfach apkToJava gem für diesen Vorgang. Es werden sogar die erforderlichen Tools installiert, damit er funktioniert.

  • aPK-Datei in Zip konvertieren
  • entpacke die Datei
  • extrahieren Sie classes.dex daraus
  • verwenden Sie dex to jar, um classes.dex in eine JAR-Datei zu konvertieren
  • verwenden Sie Jadx Gui, um die JAR-Datei als Java-Quellcode zu öffnen
2
Ajit Singh

Für die Android-Plattform können Sie ShowJava ausprobieren, die im Play Store verfügbar ist.

Sie können den generierten Code über die App-Oberfläche abrufen. Die generierte Java-Datei und Ordnerstruktur wird im Ordner ShowJava in /sdcard neben der aus der Konvertierung resultierenden .jar-Datei gespeichert.

Die App ist mit einem Werbebanner am unteren Rand der Hauptansicht kostenlos, es gibt jedoch eine In-App-Kaufoption (3,99 $), um sie zu entfernen. Beim In-App-Kauf werden neben dem Entfernen des Anzeigenbanners keine weiteren Funktionen hinzugefügt. 

Offenlegung: Ich bin weder Entwickler der App, noch bin ich in irgendeiner Weise mit ihm verbunden. 

1
Stephane Piriou

Im Folgenden sind einige Tools aufgeführt, mit denen Sie das Reverse Engineering von einer APK-Datei in den Quellcode ausführen können:

  1. Dex2jar
  2. Java-Decompiler
  3. Apktool
  4. Apk Analyzer
0
Mandeep Yadav

Wenn Sie nach einer professionellen Alternative suchen, werfen Sie einen Blick auf JEB Decompiler von PNF Software.

Es gibt eine Demo-Version, mit der Sie den meisten Code dekompilieren können.

0
Nick