Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Archivos 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.

0 de 5 · 0%

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.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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