Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Lizzard

#1
Bugs y Exploits / Re: Protostar-Stack4 wargame
19 Agosto 2015, 21:19 PM
Hola aer0x y Kr0m.
Yo estoy exactamente en la misma situación que Kr0m, estoy empezando con el reversing y me estoy pegando con el reto stack4 de exploit-exercise.He superado el reto compilando el programa a la vieja usanza (con las opciones que indicó Kr0m: -mpreferred-stack-boundary=2)
Sin embargo sigo sin poder solucionarlo con una compilación "estandar" (gcc -fno-stack-protector - execstack stack4.c -o stack4) y me gustaría entender cómo hacerlo.

Cita de: aerøx en  5 Agosto 2015, 15:13 PM
Entendiendo que hacen estas dos instrucciones:
mov ecx,[ebp-0x4]
lea esp,[ecx-0x4]

y teniendo en cuenta que el ASLR no está activado puedes poner dos direcciones de memoria en la entrada de datos junto al relleno y conseguir con esto superar el reto.

Aquí es donde me pierdo. Estoy muy pez en ensamblador, así que corregidme si me equivoco. Por lo que entiendo:
mov ecx,[ebp-0x4] -> Copia en ecx el valor de ebp-0x4, es decir, la posición de retorno, aquí es donde debemos insertar la dirección de salto a la funcion win
lea esp,[ecx-0x4] -> Copia en esp el contenido de la memoria al que apunta ecx y le resta 0x4 (esto es lo que dudo.)

Así que lo que he intentado es sumar 0x4 a la dirección de la funcion win y y escribirla a continuación del relleno. Pero esto no funciona. ¿Qué es lo que estoy haciendo mal? Supongo que no he interpretado bien lo que hace la instruccion lea esp,[ecx-0x4] ¿No?

Un saludo.