APK decompilers
Para mais detalhes sobre cada ferramenta, confira a postagem original em https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr
Como o pioneiro decompilador Java GUI, o JD-Gui permite investigar o código Java dentro de arquivos APK. É fácil de usar; após obter o APK, basta abri-lo com o JD-Gui para inspecionar o código.
Jadx oferece uma interface amigável para decompilar código Java de aplicativos Android. É recomendado por sua facilidade de uso em diferentes plataformas.
Para iniciar a GUI, navegue até o diretório bin e execute:
jadx-gui
Para uso em linha de comando, decompile um APK com:
jadx app.apk
Para especificar um diretório de saída ou ajustar as opções de decompilação:
jadx app.apk -d <caminho para o diretório de saída> --no-res --no-src --no-imports
GDA, uma ferramenta exclusiva para Windows, oferece recursos extensivos para engenharia reversa de aplicativos Android. Instale e execute o GDA em seu sistema Windows, em seguida, carregue o arquivo APK para análise.
Com o Bytecode-Viewer, você pode analisar arquivos APK usando vários decompiladores. Após o download, execute o Bytecode-Viewer, carregue seu APK e selecione os decompiladores que deseja usar para análise simultânea.
Enjarify traduz bytecode Dalvik para bytecode Java, permitindo que ferramentas de análise Java analisem aplicativos Android de forma mais eficaz.
Para usar o Enjarify, execute:
enjarify app.apk
Isso gera o equivalente em bytecode Java do APK fornecido.
CFR é capaz de decompilar recursos Java modernos. Use da seguinte forma:
Para decompilação padrão:
java -jar ./cfr.jar "app.jar" --outputdir "diretório_de_saída"
Para arquivos JAR grandes, ajuste a alocação de memória JVM:
java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "diretório_de_saída"
Fernflower, um decompilador analítico, requer compilação a partir do código-fonte. Após a compilação:
Decompilar um arquivo JAR:
java -jar ./fernflower.jar "app.jar" "diretório_de_saída"
Em seguida, extraia os arquivos.java
do JAR gerado usandounzip
.
Krakatau oferece controle detalhado sobre a decompilação, especialmente para lidar com bibliotecas externas.
Use o Krakatau especificando o caminho da biblioteca padrão e o arquivo JAR a ser decompilado:
./Krakatau/decompile.py -out "diretório_de_saída" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"
Para decompilação direta com o procyon:
Decompilar um arquivo JAR para um diretório especificado:
procyon -jar "app.jar" -o "diretório_de_saída"
Last updated