Test Foro de elhacker.net SMF 2.1

Seguridad Informática => Hacking => Bugs y Exploits => Mensaje iniciado por: dRak0 en 31 Julio 2013, 13:16 PM

Título: Ayuda format string
Publicado por: dRak0 en 31 Julio 2013, 13:16 PM
Tengo el siguiente codigo:

#include <stdio.h>

int main()
{
char hola[]="AAAA";
printf(hola);
}



Bueno , segun entendi , si no lo especificamos de la manera printf("%s",hola) , podriamos pedir direcciones de memoria q estan en la pila hasta llegar a la de nuestra variable , de esta forma

#include <stdio.h>

int main()
{
char hola[]="AAAA %p %p %p %p %p";
printf(hola);
}


Esto nos va a dar 5 direcciones de memoria  , si no encontramos 0x41414141(AAAA) seguimos poniendo mas %p , hasta encontrarlas.
Hasta ahi todo bien. Encuentro 0x41414141 .Despues de ahi nose q mas hacer.
Duda :
No entiendo , cambio el valor de una direccion en memoria o estoy metiendo la direccion de memoria(Supongo q es la ultima).

Título: Re: Ayuda format string
Publicado por: cpu2 en 1 Agosto 2013, 13:43 PM
Cita de: jednak en 31 Julio 2013, 13:16 PMDuda :
No entiendo , cambio el valor de una direccion en memoria o estoy metiendo la direccion de memoria(Supongo q es la ultima).

Estas reservando espacio en la pila, luego copiando la direccion de 0x41414141 en ese espacio que reservaste.

Ejemplo:

Código (asm) [Seleccionar]
pushq $0x6001e0   ; direccion de 0x41414141
addb $0x2, (%rsp)
popq %rdi


Dejaria apuntando a 0x4141 en rdi.

La verdad no entendi muy bien tu duda, si no es eso reformula de nuevo la pregunta.

Un saludo.