hacktricks/mobile-pentesting/android-app-pentesting/apk-decompilers.md

89 lines
5.5 KiB
Markdown

# APK decompilers
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
**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](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
### [JD-Gui](https://github.com/java-decompiler/jd-gui)
Como el decompilador GUI Java pionero, **JD-Gui** te permite investigar 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](https://github.com/skylot/jadx)
**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 al 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-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
**GDA**, una herramienta solo para Windows, ofrece amplias características para la ingeniería inversa de aplicaciones Android. Instala y ejecuta GDA en tu sistema Windows, luego carga el archivo APK para su análisis.
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
Con **Bytecode-Viewer**, puedes analizar archivos APK utilizando múltiples decompiladores. Después de descargar, ejecuta Bytecode-Viewer, carga tu APK y selecciona los decompiladores que deseas usar para un análisis simultáneo.
### [Enjarify](https://github.com/Storyyeller/enjarify)
**Enjarify** traduce bytecode Dalvik a bytecode Java, permitiendo que las herramientas de análisis de Java analicen aplicaciones Android de manera más efectiva.
- Para usar Enjarify, ejecuta: `enjarify app.apk`
Esto genera el bytecode Java equivalente del APK proporcionado.
### [CFR](https://github.com/leibnitz27/cfr)
**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_salida"`
- Para archivos JAR grandes, ajusta la asignación de memoria de la JVM: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "directorio_salida"`
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
**Fernflower**, un decompilador analítico, requiere ser construido desde el código fuente. Después de construir:
- Decompila un archivo JAR: `java -jar ./fernflower.jar "app.jar" "directorio_salida"`
Luego, extrae los archivos `.java` del JAR generado usando `unzip`.
### [Krakatau](https://github.com/Storyyeller/Krakatau)
**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_salida" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
### [procyon](https://github.com/mstrobel/procyon)
Para una decompilación sencilla con **procyon**:
- Decompila un archivo JAR a un directorio especificado: `procyon -jar "app.jar" -o "directorio_salida"`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}