🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónArchivos JAR y clases en el informe
5 tareas · 40 min · Principiante
Java llega a menudo como un archivo .jar adjunto a un correo, con nombre de utilidad y una ventana que hace lo que promete. Por dentro es un archivo ZIP: un manifiesto que declara por dónde empieza, clases compiladas a código de bytes y recursos. Todo eso se lista y se decompila sin ejecutar nada. Aquí se lee M-4612, el segundo adjunto retenido en Hilados Tausaquira: su listado, su manifiesto, la versión de sus clases, su configuración y la clase de entrada decompilada, para decir qué hace y, sobre todo, qué no se puede decir de él.
Objetivo de la sala
Java llega a menudo como un archivo .jar adjunto a un correo, con nombre de utilidad y una ventana que hace lo que promete. Por dentro es un archivo ZIP: un manifiesto que declara por dónde empieza, clases compiladas a código de bytes y recursos. Todo eso se lista y se decompila sin ejecutar nada. Aquí se lee M-4612, el segundo adjunto retenido en Hilados Tausaquira: su listado, su manifiesto, la versión de sus clases, su configuración y la clase de entrada decompilada, para decir qué hace y, sobre todo, qué no se puede decir de él.Un JAR es un archivo ZIP —por eso empieza con «PK»— que guarda clases de Java compiladas (.class), recursos y una carpeta META-INF. Dentro de ella, MANIFEST.MF describe el paquete, y su atributo Main-Class nombra la clase cuyo método main se ejecuta cuando se lanza el archivo. Esa es la puerta de entrada y por ahí se empieza a leer, igual que con Main en .NET.
Cada archivo .class empieza con la marca CA FE BA BE y declara una versión de formato que indica para qué versión de Java se compiló. No dice nada de quién lo hizo, pero sí si encaja con lo que el programa dice ser.
Responde para continuar
¿Dónde se declara, dentro de un JAR, la clase por la que empieza el programa?
Ver pista de ayuda
Piensa en qué archivo de META-INF describe el paquete.
Abre el laboratorio y lee el listado y el manifiesto. El listado dice qué hay dentro; el manifiesto dice por dónde se entra.
cat listado.txt
cat MANIFEST.MF
Responde para continuar
Escribe el nombre completo de la clase de entrada de M-4612.
Ver pista de ayuda
Es el valor del atributo que nombra la clase principal.
En la clase de entrada hay líneas que el analista omitió porque arman una descarga, pero lo que queda basta para entender el plan: el programa lee su configuración, prepara un cargador de clases que trae código desde la red y le pide una clase por su nombre. Es el equivalente en Java de lo que se vio con el ensamblado cargado en memoria: el código importante no viaja en el adjunto.
El nombre de esa clase no está en el decompilado como texto: se lee de un archivo de configuración incluido en el JAR.
cat decompilado/Lanzador.java
cat config.properties
Responde para continuar
Escribe el nombre completo de la clase que M-4612 pide al cargador remoto.
Ver pista de ayuda
Mira qué propiedad de la configuración se pasa a loadClass.
Un JAR firmado lleva en META-INF, además del manifiesto, un archivo de firma (.SF) y un bloque de firma cuya extensión depende del algoritmo (.RSA, .DSA o .EC). Si no están, el archivo no está firmado. Que esté firmado tampoco lo absuelve —una firma dice quién lo firmó, no que sea inocuo—, pero que no lo esté, siendo supuestamente una herramienta de la empresa, es un dato para el informe.
Responde para continuar
Según su listado, ¿qué se puede decir de la firma de M-4612?
Ver pista de ayuda
Repasa la nota al final del listado.
La clase remota no está en el material. No se descargó y no se debe descargar desde la estación de trabajo para «ver qué hace»: eso es interactuar con la infraestructura de quien envió la muestra. Lo que se sabe se escribe como lo que es: un cargador que pide código a un dominio externo y una ventana de etiquetas que sirve de fachada.
Responde para continuar
¿Qué frase sobre M-4612 puede ir en el informe con lo que hay?
Ver pista de ayuda
Separa lo que está en el JAR de lo que el JAR va a buscar fuera.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.