Existem duas ferramentas úteis que irão gerar código Java (rudimentar mas suficientemente bom) a partir de um ficheiro APK desconhecido.
Baixe a ferramenta dex2jar de dex2jar.
Use a ferramenta para converter o arquivo APK para JAR:
$ d2j-dex2jar.bat demo.apk
dex2jar demo.apk -> ./demo-dex2jar.jar
Uma vez gerado o arquivo JAR, use JD-GUI para abrir o arquivo JAR. Você verá os arquivos Java.
A saída será semelhante a:
Nem por isso. Existem várias suítes de dex disassembler/decompilador por aí como smali, ou dex2jar que irão gerar uma saída semi-humana legível (no caso do dex2jar, você pode obter código java através do uso de algo como JD-GUI, mas o processo não é perfeito e é muito improvável que você'seja capaz de recriar 100% do seu código fonte. No entanto, ele pode potencialmente dar-lhe um lugar para começar a reconstruir a sua árvore de código fonte.
Sim, podes ter o teu projecto de volta. Basta renomear o arquivo yourproject.apk
para yourproject.zip
, e você terá todos os arquivos dentro desse arquivo ZIP. Estamos mudando a extensão do arquivo de .apk para .zip. A partir desse arquivo ZIP, extraia o arquivo classes.dex
e descompile-o da seguinte maneira.
Primeiro, você precisa de uma ferramenta para extrair todas as classes (compiladas) no DEX para um JAR. Ali's uma chamada dex2jar, que é feita por um estudante chinês.
Então, você pode usar JD-GUI para descompilar as classes no JAR para o código fonte. O código fonte resultante deve ser bastante legível, já que o dex2jar aplica algumas otimizações.