<summary><strong>Aprende hacking en AWS de cero a héroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF**, consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sigue** a **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
Utilizando la interfaz gráfica puedes realizar **búsqueda de texto**, ir a las **definiciones de funciones** (_CTRL + clic izquierdo_ en la función) y referencias cruzadas (_clic derecho_ --> _Buscar uso_)
GDA es también una plataforma de análisis de ingeniería inversa potente y rápida. Que no solo soporta las operaciones básicas de decompilación, sino también muchas funciones excelentes como **Detección de comportamiento malicioso, Detección de fuga de privacidad, Detección de vulnerabilidades, Resolución de caminos, Identificación de empaquetadores, Análisis de seguimiento de variables, Desofuscación, Scripts de Python y Java, Extracción de memoria del dispositivo, Descifrado y cifrado de datos**, etc.
Otra **herramienta interesante para realizar un análisis estático es**: [**bytecode-viewer**](https://github.com/Konloch/bytecode-viewer/releases)**.** Permite decompilar el APK usando **varios decompiladores al mismo tiempo**. Entonces, puedes ver, por ejemplo, 2 decompiladores de Java diferentes y un decompilador Smali. También te permite **modificar** el código:
Enjarify es una herramienta para traducir el bytecode de Dalvik a bytecode de Java equivalente. Esto permite que las herramientas de análisis de Java analicen aplicaciones Android.\
Dex2jar es una herramienta más antigua que también intenta traducir Dalvik a bytecode de Java. Funciona razonablemente bien la mayoría del tiempo, pero muchas características oscuras o casos límite harán que falle o incluso produzca resultados incorrectos silenciosamente. En contraste, Enjarify está diseñado para funcionar en tantos casos como sea posible, incluso para código donde Dex2jar fallaría. Entre otras cosas, Enjarify maneja correctamente nombres de clases unicode, constantes usadas como múltiples tipos, conversiones implícitas, manejadores de excepciones que saltan al flujo de control normal, clases que hacen referencia a demasiadas constantes, métodos muy largos, manejadores de excepciones después de un manejador catchall y valores iniciales estáticos del tipo incorrecto.
CFR decompilará características modernas de Java - [incluyendo mucho de Java ](https://www.benf.org/other/cfr/java9observations.html)[9](https://github.com/leibnitz27/cfr/blob/master/java9stringconcat.html), [12](https://www.benf.org/other/cfr/switch_expressions.html) & [14](https://www.benf.org/other/cfr/java14instanceof_pattern), pero está escrito enteramente en Java 6, ¡así que funcionará en cualquier lugar! ([FAQ](https://www.benf.org/other/cfr/faq.html)) - ¡Incluso hará un buen intento de convertir archivos de clase de otros lenguajes JVM de nuevo a java!
Para archivos JAR más grandes, descubrí que se quedaba sin memoria. Puedes adaptar simplemente el tamaño del pool de asignación de memoria de la JVM si eso también te sucede.
El siguiente es [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine), que forma parte de [IntelliJ IDEA](https://www.jetbrains.com/idea/). Todos mencionan que es un descompilador _analítico_ (como se indica en la descripción de su proyecto), pero nadie señala qué significa esto realmente. Solo encontré [esta pregunta en Stackoverflow](https://stackoverflow.com/q/62298929), que lamentablemente sigue sin respuesta hasta el día de hoy.
De todos modos, dado que no hay versiones independientes, necesitas construirlo tú mismo. Como proyecto basado en [Gradle](https://gradle.org), puedes clonarlo y luego ejecutar el siguiente comando, siempre que Gradle esté instalado en tu máquina.
Aquí, primero cambiamos nuestro directorio de trabajo al directorio raíz de Fernflower. Luego, instruimos a Gradle para construir el archivo `./build/libs/fernflower.jar`.
Entre los decompiladores descritos aquí, este es el único que genera los archivos `.java` en un archivo JAR. Puedes extraer fácilmente los archivos fuente utilizando `unzip`.
¿Recuerdas Enjarify de arriba? El mismo autor también es el desarrollador de un decompilador llamado [Krakatau](https://github.com/Storyyeller/Krakatau).
> A continuación, asegúrate de tener jars que contengan definiciones para cualquier clase externa (es decir, librerías) que pueda ser referenciada por el jar que estás intentando decompilar. Esto incluye las clases de la biblioteca estándar (es decir, JRT).
Y según la descripción, estas clases de la biblioteca estándar vienen con hasta la versión 8 de Java en forma del archivo `rt.jar`. Para versiones posteriores, el autor proporciona [jrt-extractor](https://github.com/Storyyeller/jrt-extractor), que puede generar este archivo para nosotros.
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sigue** a **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).