JD-GUI en Español: Instalación y Uso
JD-GUI en Español: Instalación y Uso
Instalar y usar JD-GUI en Kali Linux es bastante sencillo, aunque por defecto la interfaz suele venir en inglés. Aquí te explico cómo tenerlo listo y las opciones para el idioma.
1. Instalación de JD-GUI en Kali
Primero, asegúrate de tener el entorno de Java instalado, ya que JD-GUI lo necesita para correr.
Actualiza tus repositorios:
Bashsudo apt updateInstala JD-GUI:
Bashsudo apt install jd-gui
2. ¿Se puede poner en Español?
Aquí hay un punto importante: JD-GUI no tiene una opción nativa en el menú para cambiar el idioma a español. La mayoría de las herramientas de análisis de seguridad y descompiladores se mantienen en inglés por estándar técnico.
Sin embargo, su interfaz es muy visual e intuitiva. Aquí tienes una pequeña "traducción" de las funciones principales para que te muevas como un experto:
| Inglés | Español | Función |
| File > Open File | Archivo > Abrir | Carga tu archivo .jar, .class o .apk. |
| Save All Sources | Guardar fuentes | Exporta todo el código descompilado a un archivo .zip. |
| Search | Buscar | Permite buscar clases, métodos o cadenas de texto (Ctrl+F). |
| Navigation | Navegación | Para moverte entre el historial de archivos abiertos. |
3. Cómo usarlo (Flujo de trabajo)
Una vez abierto, el proceso para analizar un archivo es el siguiente:
Cargar: Arrastra el archivo
.jardirectamente a la ventana de JD-GUI.Explorar: En la columna de la izquierda verás la estructura de paquetes (carpetas).
Analizar: Haz clic en cualquier clase (
.class) y verás el código Java casi como si fuera el original.
Tip de experto:
Si lo que buscas es descompilar aplicaciones de Android (.apk), recuerda que primero debes pasar el APK por una herramienta como dex2jar para obtener el archivo que JD-GUI pueda leer.
Nota: Si realmente necesitas una herramienta de ingeniería inversa que tenga mejor soporte de comunidad o plugins, te recomiendo echarle un vistazo a JADX, que también está disponible en Kali y suele ser un poco más moderno.
El proceso para pasar de un archivo .apk a algo que puedas leer en JD-GUI es muy común en la ingeniería inversa.
Como el archivo APK contiene archivos .dex (Dalvik Executable) y JD-GUI solo lee archivos .jar (Java Archive), usaremos una herramienta llamada dex2jar.
Aquí tienes los pasos detallados:
Paso 1: Instalar dex2jar
En Kali Linux, puedes instalarlo directamente desde los repositorios:
sudo apt update
sudo apt install dex2jar
Paso 2: Convertir el APK a JAR
Una vez instalado, abre tu terminal en la carpeta donde tengas el APK y ejecuta el siguiente comando:
d2j-dex2jar nombre_de_tu_app.apk
Resultado: Se generará un nuevo archivo llamado
nombre_de_tu_app-dex2jar.jaren la misma carpeta.
Paso 3: Abrir el resultado en JD-GUI
Ahora solo tienes que abrir el nuevo archivo .jar con el descompilador:
jd-gui nombre_de_tu_app-dex2jar.jar
¿Qué pasa si el APK tiene varios archivos DEX?
Las aplicaciones modernas de Android suelen ser grandes y usan "Multi-Dex". Si al convertirlo notas que falta código:
Cambia la extensión del archivo de
.apka.zip.Descomprímelo y verás varios archivos:
classes.dex,classes2.dex, etc.Tendrás que pasar cada uno por el comando:
d2j-dex2jar classes.dex.Luego abres todos los
.jarresultantes en JD-GUI al mismo tiempo.
Una alternativa más moderna: JADX
Si esto te parece mucho lío, Kali incluye JADX, que hace todo esto en un solo paso (abre el APK directamente y lo muestra como código Java). Puedes probarlo escribiendo jadx-gui en tu terminal.
Buscar información sensible (como contraseñas, claves de API, tokens o URLs de servidores) es el "pan de cada día" en la auditoría de aplicaciones.
Aquí tienes los trucos para hacerlo de forma eficiente dentro de JD-GUI:
1. Búsqueda Global (La más potente)
No busques archivo por archivo. Usa la búsqueda indexada:
Atajo: Presiona
Ctrl + Shift + S.Configuración: Aparecerá una ventana. Asegúrate de que esté seleccionada la pestaña "String Constant".
Qué buscar: Escribe palabras clave como:
http://ohttps://(para encontrar endpoints).api_key,secret,password, otoken.jdbc:(si buscas cadenas de conexión a bases de datos).
2. Búsqueda en el archivo actual
Si ya estás viendo una clase que te parece sospechosa (por ejemplo, una llamada Config.class o Auth.class):
Atajo:
Ctrl + F.Esto abrirá una pequeña barra de búsqueda en la parte inferior para resaltar términos específicos en ese código.
3. El truco de "Save All Sources"
A veces, JD-GUI se queda corto si quieres usar herramientas de Linux más potentes. Haz esto:
Ve a File > Save All Sources.
Guarda el archivo
.zipy descomprímelo.Usa la terminal de Kali para buscar con
grep. Es mucho más rápido si sabes qué buscas:Bashgrep -r "auth_token" ./codigo_descomprimido/
¿Qué buscar exactamente?
Si estás auditando una app, presta atención a estos patrones:
Firebase: Busca URLs que terminen en
.firebaseio.com.Sentry/Crashlytics: A veces dejan tokens de log expuestos.
AWS: Busca patrones como
AKIA...(identificadores de acceso de Amazon).
Ojo con la Ofuscación: Si al abrir el código ves que las clases y variables se llaman
a,b,c, la app está ofuscada (usaron ProGuard o R8). Es mucho más difícil de leer, pero las "Strings" (cadenas de texto como las URLs) suelen seguir siendo visibles.
Usar la terminal de Kali con grep es como tener rayos X para el código descompilado. Es mucho más rápido que buscar manualmente en JD-GUI cuando el proyecto tiene cientos de archivos.
Una vez que hayas guardado las fuentes (File > Save All Sources) y las hayas descomprimido en una carpeta, abre tu terminal ahí y prueba estos comandos:
1. Buscar todas las URLs (HTTP/HTTPS)
Este comando filtrará cualquier cadena que parezca una dirección web:
grep -rE "https?://[a-zA-Z0-9./?=_-]+" .
-r: Busca de forma recursiva en todas las carpetas.-E: Activa las expresiones regulares extendidas.https?: Busca "http" o "https".
2. Buscar llaves de AWS (Patrón común)
Las credenciales de Amazon Web Services suelen empezar por AKIA. Puedes cazarlas así:
grep -r "AKIA[0-9A-Z]\{16\}" .
3. Buscar posibles correos electrónicos
Ideal para encontrar contactos de desarrolladores o servidores de correo internos:
grep -rE "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}" .
4. Búsqueda de "Secretos" (Palabras clave)
Si quieres buscar varias cosas a la vez (como "password", "token" o "key"), usa este "supercomando":
grep -riE "password|token|secret|apiKey|authorization|config" .
-i: Ignora mayúsculas y minúsculas (busca tanto "Password" como "password").
Resumen visual del proceso
Un consejo de "Hacker":
Si los resultados son demasiados y te llenan la pantalla de basura, puedes limpiar la salida para que solo te diga en qué archivos encontró algo:
grep -rl "api_key" .
(La opción -l solo muestra el nombre del archivo, no el contenido).