🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónCadenas protegidas y su efecto en la lectura
5 tareas · 38 min · Principiante
La facilidad de leer un decompilado de .NET también la conocen quienes escriben muestras, y muchas llegan con los nombres propios cambiados por letras y los textos sustituidos por llamadas a una función que los devuelve al ejecutarse. El programa hace lo mismo; lo que cambia es lo que se puede leer sin correrlo. El jueves llegó a Hilados Tausaquira M-4614, una segunda compilación del mismo proyecto que M-4611, y su decompilado ya no se lee igual. Aquí no se descifra nada: se compara lo que se perdió, se identifica lo que sigue a la vista y se usa lo que el entorno aislado recuperó de la memoria.
Objetivo de la sala
La facilidad de leer un decompilado de .NET también la conocen quienes escriben muestras, y muchas llegan con los nombres propios cambiados por letras y los textos sustituidos por llamadas a una función que los devuelve al ejecutarse. El programa hace lo mismo; lo que cambia es lo que se puede leer sin correrlo. El jueves llegó a Hilados Tausaquira M-4614, una segunda compilación del mismo proyecto que M-4611, y su decompilado ya no se lee igual. Aquí no se descifra nada: se compara lo que se perdió, se identifica lo que sigue a la vista y se usa lo que el entorno aislado recuperó de la memoria.Las herramientas que protegen un ensamblado suelen hacer dos cosas visibles en la salida. Renombran las clases, métodos y campos propios con nombres sin sentido, y sustituyen las cadenas literales por una llamada a un método que recibe un número y devuelve el texto en tiempo de ejecución. El resultado: el montón de cadenas de usuario se queda casi vacío y el código se llena de llamadas iguales con números distintos.
Hay algo que no pueden renombrar: los tipos y métodos del entorno que el programa usa, porque viven en otros ensamblados y el entorno los busca por su nombre. Un cliente HTTP, un temporizador o una consulta del nombre del equipo siguen apareciendo con su nombre real, y por eso la capacidad suele seguir leyéndose aunque el detalle no.
Responde para continuar
En un ensamblado con cadenas protegidas y nombres cambiados, ¿qué suele seguir leyéndose con su nombre real?
Ver pista de ayuda
Piensa en qué partes del programa no pertenecen al autor.
Antes de leer conviene medir. Comparar los metadatos de las dos versiones dice si es el mismo programa con otra cara o un programa distinto: si el número de clases y de referencias al entorno no cambia, la estructura es la misma y lo que se aprendió de M-4611 sirve para guiar la lectura de M-4614.
cat conteos.txt
Responde para continuar
¿Cuántas cadenas de usuario tiene M-4611 que ya no aparecen en M-4614? Escribe solo el número.
Ver pista de ayuda
Resta las dos cifras de la fila del montón de cadenas de usuario.
Cuando todos los textos pasan por un único método, ese método se vuelve el centro de la lectura: cada llamada con un número es un texto que el programa necesita en ese punto. Contar sus llamadas da una idea de cuánto texto escondido hay, aunque no diga cuál.
Responde para continuar
¿Cuántas veces llama M-4614 al método que devuelve las cadenas? Escribe solo el número.
Ver pista de ayuda
Está en la comparación de metadatos, en la fila de las llamadas.
En la clase c no queda ni una dirección legible, pero la capacidad sigue a la vista: el programa crea un objeto del entorno para hacer peticiones HTTP y lo usa para enviar por POST. Ese nombre no lo pudo cambiar la protección.
cat decompilado/c.cs
Responde para continuar
Escribe el nombre del tipo del entorno que delata en c.cs la capacidad de comunicarse por red.
Ver pista de ayuda
Busca el campo que se crea con new al principio de la clase.
No hace falta reproducir el método de las cadenas para saber qué devuelve. El entorno aislado puede anotar qué número pidió el programa y qué texto obtuvo durante su corrida. Esa lista se cruza con las llamadas del decompilado y devuelve el sentido a cada línea. Su límite: solo contiene los textos que se pidieron en esa corrida.
cat entorno-aislado/cadenas-en-memoria.txt
Responde para continuar
Escribe el número que recibe el método de las cadenas cuando el programa necesita la dirección del servidor.
Ver pista de ayuda
Busca la dirección en la lista recuperada y comprueba en c.cs dónde se usa ese número.
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.