2016-10-10 2 views
-3

enter image description hereclasses.dex Datei does't meine Java-Klassen enthalten

Ich habe eine App in Android-Studio entwickelt und testen Sie es in meinem Handy. Ich habe meinen Computer formatiert und vergessen, mein Projekt irgendwo zu speichern. Jetzt möchte ich meine Quellcodes zurückbekommen. Ich bekomme die APK-Datei von meinem Telefon (entweder mit adb und einigen anderen Tools).

Ich benutze dex2jar und dekompiliere meine classes.dex-Datei, aber es zeigt nicht meine eigenen Java-Klassen. Ist es möglich, sie zurückzubekommen?

+0

Auch wenn Sie Ihre classses bekam und dekompilierten sie Sie wären ein meist unleserliches und definitiv nicht zu behebendes Durcheinander. – Carcigenicate

+0

Warum brauchen Sie das.? Dex-Dateien sind Dalvik-Dateien, die NUR von Dalvik oder JVM benötigt werden –

+0

Das Einzige, was ich möchte, ist, meine Klassen, in denen ich geschrieben habe, zurückzubekommen das Projekt, ich möchte sie nicht noch einmal schreiben Habe meine eigene Anwendung in meinem Handy und ich kann die APK-Datei auslesen. Ich muss nur meine Klassen aus dieser apk-Datei erhalten – parliament

Antwort

0

Sie können es decompile so leicht ein großes Tutorial unter:

https://futurestud.io/tutorials/how-to-decompile-an-android-app-apk

4 einfachen Schritten, wie unten:

1- unzip Sie apk wie Sie jede Datei Zip entpacken

2 -find classes.dex files

3-Konvertieren sie in JAR-Datei mit dexToJar Werkzeug

4- die JAR-Datei öffnen JD-Gui Anwendung (availbale für windows/ubuntu/mac) mit

+0

Ich tat exacatly, was Sie Schritt für Schritt traurig. Aber in JD-Gui gibt es nur ein paar Klassen, die nicht meine sind – parliament

+0

Hast du deine APK progauriert? Vor dem Freigeben? –

+0

Ich weiß nicht, was progaurd ist, aber ich selbst habe nichts dergleichen gemacht. Ich habe ein Projekt im Android Studio erstellt und dann auf meinem angeschlossenen Telefon ausgeführt. Das ist alles – parliament

0

Dieser in der Regel von einigen obfuscator getan, wie Proguard. Dies bedeutet unter anderem, dass die Klassennamen Ihrer Klassen in bedeutungslose Namen (wie A/B/C) geändert werden. Die Namen werden sich im vollständig qualifizierten Pfad einer Java-Klasse, z. Sie könnten mehrere "A" -Klassen in verschiedenen Paketen haben, aber ansonsten werden Sie diese Klassennamen mehrmals haben. In den meisten Fällen wird es die Funktionalität Ihres Programms nicht beeinträchtigen, aber es wird den Reverse-Engineering-Prozess erschweren.

ist dies Ihre App und Sie können es neu erstellen, können Sie ProGuard oder eine Teilmenge der Funktionen deaktivieren, sonst werden Sie es auf Ihrem eigenen umkehren müssen Ingenieur.

Verwandte Themen