AVILX

REVERSING WRITEUP · CRACKMES.ONE · 2026

really easy

Password en texto claro en .rodata — resuelto con strings

Autor retoezloom
Plataformacrackmes.one
Dificultad1.0 / 5.0
Arquitecturax86-64 — Unix/Linux
ModoNormal Mode — Análisis estático
AnalistaJesús Ávila (Avilx)
Fecha07 de Septiembre 2026
Portafolioavilx.dev
PASSWORD ENCONTRADO REVERSING · ASSEMBLY · CRACKME · x86-64

Documentación de aprendizaje en reversing | Entorno controlado

Información del Binario

Campo Valor
Nombresimp-password
TipoELF 64-bit LSB pie executable
Arquitecturax86-64
Enlazadodynamically linked
Strippednot stripped
Stack CanaryCanary Found
NXEnabled
PIEPIE Enabled
RELROFull RELRO
Nota
Este binario tiene Full RELRO y Canary, más protecciones que los anteriores. Sin embargo las mitigaciones del stack no protegen contra la exposición de secretos en texto claro en .rodata.

Reconocimiento

Análisis inicial

Strings

$ strings -a ./simp-password | grep -v "^_Z\|GLIBC\|\.so\|\."

[Funciones relevantes]
strcmp
printf
scanf
puts

[Strings del programa]
Enter password:
%41s
iloveicecream
I love ice cream too!
Wrong try again.
Hallazgo
El comando strings reveló el password iloveicecream en texto completamente claro dentro del binario. También se identificó el mensaje de éxito “I love ice cream too!” y el de fallo “Wrong try again.”. El programa usa strcmp para comparar el input con el password y %41s limita la entrada a 41 caracteres.
Hipótesis
El password es iloveicecream. El binario lo almacena en .rodata sin ninguna ofuscación. No es necesario analizar el assembly para resolver este crackme.

Ejecución inicial

$ ./simp-password
Enter password: 23
Wrong try again.

Solución

Password encontrado

iloveicecream
PASSWORD ENCONTRADO
$ ./simp-password
Enter password: iloveicecream
I love ice cream too!
Hallazgo
El password iloveicecream fue verificado exitosamente. El programa respondió: “I love ice cream too!”

Reflexión Final

Qué salió bien

El reconocimiento inicial con strings resolvió el crackme de inmediato. Es la primera herramienta a usar y en este caso fue suficiente.

Lecciones aprendidas

Las mitigaciones del stack como Full RELRO, Canary y PIE protegen contra ataques de corrupción de memoria, pero no protegen contra la exposición de secretos en texto claro. Un password hardcodeado en .rodata siempre es visible con strings, independientemente de las protecciones del binario.

En un binario real de producción, los secrets nunca deben estar hardcodeados. Deben cifrarse, derivarse de una clave externa, o verificarse mediante un hash.

Tiempo total

Fase Tiempo
Reconocimiento con strings3 minutos
Verificación2 minutos
Total5 minutos