Können die Benutzer die APK-Datei meiner Anwendung wieder in den eigentlichen Code umwandeln? Wenn dies der Fall ist, gibt es eine Möglichkeit, dies zu verhindern?
Zunächst ist eine apk-Datei nur eine modifizierte JAR-Datei. Die eigentliche Frage ist also, ob sie die Dex-Dateien darin dekompilieren können. Die Antwort ist irgendwie. Es gibt bereits Disassembler wie dedexer und smali . Man kann davon ausgehen, dass diese nur besser werden, und theoretisch sollte es möglich sein, die Java-Quelle (zumindest manchmal) zu dekompilieren. Siehe vorhergehende Frage DEX in Java-Quellcode zerlegen .
Was Sie sich merken sollten ist, dass Verschleierung nie funktioniert. Wählen Sie eine gute Lizenz und geben Sie Ihr Bestes, um sie gesetzlich durchzusetzen. Verschwenden Sie keine Zeit mit unzuverlässigen technischen Maßnahmen.
ApkTool zum Anzeigen von Ressourcen in der APK-Datei
apktool.bat d sampleApp.apk
Dex2jar verwenden
dex2jar sampleApp.apk
Dekompilieren von .jar mit JD-GUI
Ich kann auch hinzufügen, dass es heutzutage möglich ist, Android-Anwendungen online zu dekompilieren.
Hier sind 2 Optionen für Sie:
Laden Sie dieses jadx-Tool herunter https://sourceforge.net/projects/jadx/files/
Entpacken Sie es und starten Sie im lib-Ordner die jadx-gui-0.6.1.jar-Datei. Durchsuchen Sie nun Ihre apk-Datei . Apk wird automatisch dekompiliert und gespeichert, indem Sie auf die Schaltfläche "Speichern" drücken. Ich hoffe, es funktioniert für Sie. Danke
Können die Benutzer die APK-Datei meiner Anwendung wieder in den eigentlichen Code konvertieren?
ja.
Menschen können verschiedene Werkzeuge verwenden, um:
FDex2
zum Ausgeben der dex
-Datei dex2jar
in jar
konvertieren jadx
, um zu Java
-Quellcode zu konvertierenWenn ja - gibt es eine Möglichkeit, dies zu verhindern?
ja. Mehrere (kombinierbare) Möglichkeiten, dies zu verhindern (gewisser Grad):
ProGuard
Weitere Details finden Sie in meinem Chinesisch Tutorial: 安卓 安卓 的 安全 和 破解
Manchmal kommt es zu fehlerhaftem Code, wenn dex2jar
/apktool
verwendet wird, vor allem in Schleifen. Um dies zu vermeiden, verwenden Sie jadx , das dalvik-Bytecode in Java-Quellcode dekompiliert, ohne vorher eine .jar
/.class
-Datei zu erstellen, da dex2jar
dies tut (apktool verwendet dex2jar (glaube ich)). Es ist auch Open Source und in aktiver Entwicklung. Es hat sogar eine GUI für GUI-Fanatiker. Versuch es!