Foro de elhacker.net

Seguridad Informática => 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:
Código:
#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
Código:
#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: xv0 en 1 Agosto 2013, 13:43 pm
Duda :
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
  1. pushq $0x6001e0   ; direccion de 0x41414141
  2. addb $0x2, (%rsp)
  3. 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.