Avatar ·

Wie man eine DEX-Datei zurück in Java-Quellcode dekompiliert

Hallo Kollegen! Ich bin neu in der Android-Entwicklung und im Reverse Engineering. Ich stehe vor folgender Aufgabe: Ich habe eine APK-Datei (eine normale Android-App) und möchte sehen, wie die interne Logik aufgebaut ist. Ich weiß, dass Java-Bytecode (JVM) für Android in DEX (Dalvik Executable) kompiliert wird. Aber wie bekomme ich aus diesem DEX wieder lesbaren Java-Code? Ich habe versucht, die APK einfach als ZIP-Archiv zu öffnen und classes.dex zu finden, aber das ist eine Binärdatei, die man nicht lesen kann. Ich habe versucht, DEX mit dem Tool dex2jar in JAR zu konvertieren und dann das JAR in einem Dekompilierer (z.B. JD-GUI) zu öffnen. In einigen Fällen funktioniert das, aber oft ist der Code obfuskiert (a, b, c statt Variablennamen) oder bricht ganz. Hier ist ein Beispiel dessen, was ich nach der Dekompilierung sehe: ```java public class a { public static String a(String str) { int i = 0; for (int i2 = 0; i2 < str.length(); i2++) { i = (i + str.charAt(i2)) * 17; } return Integer.toHexString(i); } } ```