Como descompilar um arquivo DEX de volta para o código-fonte Java?
Olá, colegas! Sou novo no desenvolvimento Android e em reverse engineering. Me deparei com a seguinte tarefa: tenho um arquivo APK (um aplicativo Android comum) e quero ver como alguma lógica interna está estruturada. Eu sei que o bytecode Java (JVM) é compilado em DEX (Dalvik Executable) para Android. Mas como obter de volta o código Java legível a partir desse DEX?
Tentei simplesmente abrir o APK como um arquivo ZIP e encontrar o classes.dex, mas é um binário, não dá para ler. Tentei converter DEX para JAR usando a ferramenta dex2jar, e depois abrir o JAR em um descompilador (por exemplo, JD-GUI). Em alguns casos funciona, mas frequentemente o código fica ofuscado (a, b, c em vez de nomes de variáveis) ou simplesmente quebra.
Aqui está um exemplo do que vejo após a descompilação:
```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);
}
}
```