APK decompilers
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Para mais detalhes sobre cada ferramenta, confira o post 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 descompilador GUI Java, JD-Gui permite que você investigue código Java dentro de arquivos APK. É simples de usar; após obter o APK, basta abri-lo com JD-Gui para inspecionar o código.
Jadx oferece uma interface amigável para descompilar 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, descompile um APK com: jadx app.apk
Para especificar um diretório de saída ou ajustar opções de descompilação: jadx app.apk -d <caminho para o diretório de saída> --no-res --no-src --no-imports
GDA, uma ferramenta apenas para Windows, oferece recursos extensivos para engenharia reversa de aplicativos Android. Instale e execute o GDA em seu sistema Windows, depois carregue o arquivo APK para análise.
Com Bytecode-Viewer, você pode analisar arquivos APK usando múltiplos descompiladores. Após o download, execute o Bytecode-Viewer, carregue seu APK e selecione os descompiladores 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 bytecode Java equivalente do APK fornecido.
CFR é capaz de descompilar recursos modernos do Java. Use-o da seguinte forma:
Para descompilação padrão: java -jar ./cfr.jar "app.jar" --outputdir "output_directory"
Para arquivos JAR grandes, ajuste a alocação de memória da JVM: java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"
Fernflower, um descompilador analítico, requer construção a partir do código-fonte. Após a construção:
Descompile um arquivo JAR: java -jar ./fernflower.jar "app.jar" "output_directory"
Em seguida, extraia os arquivos .java
do JAR gerado usando unzip
.
Krakatau oferece controle detalhado sobre a descompilação, especialmente para lidar com bibliotecas externas.
Use Krakatau especificando o caminho da biblioteca padrão e o arquivo JAR a ser descompilado: ./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"
Para descompilação simples com procyon:
Descompile um arquivo JAR para um diretório especificado: procyon -jar "app.jar" -o "output_directory"
Esta ferramenta pode ser usada para despejar o DEX de um APK em execução na memória. Isso ajuda a superar a ofuscação estática que é removida enquanto a aplicação é executada na memória.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)