Quellcode aus einer .apk-Datei holen? [geschlossen]


21

Gibt es eine Möglichkeit, den Quellcode einer .apk-Datei abzurufen?


7
Haben Sie zuvor überprüft, ob das Paket Open Source ist?
ott--

Eine APK-Datei ist einfach eine ZIP-Datei. Leider wird jeder App-Build für 'Release' wahrscheinlich von ProGuard geschützt .
Daniel López

@MatthewRead The Op fragt, ob er den Code von einer API erhalten könnte, und ich antwortete, wie dieses Phänomen heißt und wie man zumindest verhindern kann, dass eine ähnliche App erstellt wird. Er sagt nicht, wie er verhindern soll, dass der Code abgerufen wird. Ja, das beantwortet die Frage.
Mensch

Antworten:



11

Wenn Sie Glück haben und Ihre .apkDatei nicht durch Proguard oder Analog geschützt ist , können Sie das APK-Tool verwenden . Es ist ein Tool für das Reverse Engineering von geschlossenen Android-Apps von Drittanbietern.


Apktool generiert nur Smali-Code, keinen Java-Code - das ist ein großer Unterschied.
Robert

2

Aus einem der Community-Wikis von Parnkul Garg in SO :


Vorgehensweise zum Dekodieren von APK-Dateien, schrittweise Anleitung:

Schritt 1:

  1. Erstellen Sie einen neuen Ordner und kopieren Sie die APK-Datei, die Sie dekodieren möchten.

  2. Benennen Sie nun die Erweiterung dieser .apk-Datei in .zip um (z. B. von filename.apk in filename.zip umbenennen) und speichern Sie sie. Jetzt können Sie auf die classes.dex-Dateien usw. zugreifen. In diesem Stadium können Sie Drawables sehen, aber keine XML- und Java-Dateien. Fahren Sie also fort.

Schritt 2:

  1. Extrahieren Sie nun diese ZIP-Datei in denselben Ordner (oder NEUEN ORDNER).

  2. Laden Sie dex2jar herunter und extrahieren Sie es in denselben Ordner (oder NEUEN ORDNER).

  3. Verschieben Sie die Datei classes.dex in den Ordner dex2jar.

  4. Öffnen Sie nun die Eingabeaufforderung und wechseln Sie in das Verzeichnis dieses Ordners (oder NEUEN ORDNERS). Dann schreibe d2j-dex2jar classes.dexund drücke Enter. Sie haben jetzt die Datei classes.dex.dex2jar im selben Ordner.

  5. Laden Sie den Java Decompiler herunter , doppelklicken Sie auf jd-gui, klicken Sie auf open file und öffnen Sie die Datei classes.dex.dex2jar aus diesem Ordner: Sie erhalten jetzt Klassendateien.

  6. Speichern Sie alle diese Klassendateien (klicken Sie in jd-gui auf Datei -> Alle Quellen speichern) unter dem Namen src. Zu diesem Zeitpunkt erhalten Sie die Java-Quelle, aber die XML-Dateien sind immer noch nicht lesbar. Fahren Sie also fort.

Schritt 3:

Öffnen Sie jetzt einen weiteren neuen Ordner

  1. Geben Sie die APK-Datei ein, die Sie dekodieren möchten

  2. Laden Sie die neueste Version von apktool UND apktool-Installationsfenster herunter (beide können über denselben Link heruntergeladen werden) und platzieren Sie sie in demselben Ordner

  3. Download - Rahmen-res.apk und steckte es in demselben Ordner (Nicht alle apk - Datei müssen diese Datei, aber es tut nicht weh)

  4. Öffnen Sie ein Befehlsfenster

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

  6. apktool d myApp.apk (wobei myApp.apk den Dateinamen angibt, den Sie dekodieren möchten)

Jetzt erhalten Sie einen Dateiordner in diesem Ordner und können die XML-Dateien des apk leicht lesen.

Schritt 4:

Es ist kein Schritt, nur den Inhalt beider Ordner (in diesem Fall beide neuen Ordner) in den einen zu kopieren

und genieße den Quellcode ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.