APK decompilers
Para más detalles sobre cada herramienta, consulta la publicación original en https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr
Como el pionero de los decompiladores GUI de Java, JD-Gui te permite investigar el código Java dentro de archivos APK. Es fácil de usar; después de obtener el APK, simplemente ábrelo con JD-Gui para inspeccionar el código.
Jadx ofrece una interfaz fácil de usar para decompilar código Java de aplicaciones Android. Se recomienda por su facilidad de uso en diferentes plataformas.
Para iniciar la GUI, navega hasta el directorio bin y ejecuta:
jadx-gui
Para uso en línea de comandos, decompila un APK con:
jadx app.apk
Para especificar un directorio de salida o ajustar opciones de decompilación:
jadx app.apk -d <ruta al directorio de salida> --no-res --no-src --no-imports
GDA, una herramienta exclusiva para Windows, ofrece amplias funciones para ingeniería inversa de aplicaciones Android. Instala y ejecuta GDA en tu sistema Windows, luego carga el archivo APK para el análisis.
Con Bytecode-Viewer, puedes analizar archivos APK utilizando múltiples decompiladores. Después de descargarlo, ejecuta Bytecode-Viewer, carga tu APK y selecciona los decompiladores que deseas usar para el análisis simultáneo.
Enjarify traduce el bytecode de Dalvik al bytecode de Java, lo que permite a las herramientas de análisis Java analizar aplicaciones Android de manera más efectiva.
Para usar Enjarify, ejecuta:
enjarify app.apk
Esto genera el equivalente en bytecode de Java del APK proporcionado.
CFR es capaz de decompilar características modernas de Java. Úsalo de la siguiente manera:
Para decompilación estándar:
java -jar ./cfr.jar "app.jar" --outputdir "directorio_de_salida"
Para archivos JAR grandes, ajusta la asignación de memoria JVM:
java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "directorio_de_salida"
Fernflower, un decompilador analítico, requiere ser compilado desde el origen. Después de compilar:
Decompila un archivo JAR:
java -jar ./fernflower.jar "app.jar" "directorio_de_salida"
Luego, extrae los archivos.java
del JAR generado usandounzip
.
Krakatau ofrece un control detallado sobre la decompilación, especialmente para manejar bibliotecas externas.
Usa Krakatau especificando la ruta de la biblioteca estándar y el archivo JAR a decompilar:
./Krakatau/decompile.py -out "directorio_de_salida" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"
Para una decompilación sencilla con procyon:
Decompila un archivo JAR en un directorio especificado:
procyon -jar "app.jar" -o "directorio_de_salida"
Última actualización