El código fuente:

En este ejercicio vamos a ver algo parecido a tomar el control del registro EIP y así poder tomar el control del flujo del programa. Y digo algo parecido por que no vamos a tocar este registro (de momento) jajaja.

 

El programa va a inicializar fp=0 y luego, si fp no es cero (false), saltará al valor que tenga, y en este caso para superar el reto, este valor tiene que ser la direccion donde se encuentre la función win().

 

Vamos a comprobar primero que realmente podemos sobrescribir el valor de fp, poniendo 64 'zetas' + 4 'kas'.

Ahí tenemos el valor de fp sobrescrito por KKKK. Por lo tanto si sustituimos esto por la direccion donde se encuentre la función win(), estará todo hecho.

 

Miramos las funciones con radare tras un analisis:

Pues ahí lo tenemos: 0x08048424.

 

Ahora sí que la tenemos en pompa y sin bragas:

 

- "Buenas noches Zaiuss"

- "Buenas noches Doctor"