Programación General > C/C++

 Como desbordar la memoria con este Programa??

(1/2) > >>

jvmjunior:
Hola.

Me piden que haga un caso de prueba, es decir que descubra como...desbordar el bufer de la memoria montón en el siguiente programa:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void comprobar (char *pas) {
 char *passwd;
 
 passwd = (char *) malloc (sizeof (char) * 8);
 strcpy(passwd, pas);
 passwd = (char *) strlwr(passwd);  /* strlwr - convierte a minuscula*/ /* si no compila se quita el strlwr */

 if (strcmp(passwd, "mipas")==0) printf ("Password correcto. ");
 else printf ("Password incorrecto. ");
 return;
}

int main(int argc, char *argv[]) {
 int i;
 
 comprobar (argv[1]);
 printf ("Finaliza. ");
 scanf("%d", &i);
 return 0;
}

[/list]

Espero tu ayuda...
Gracias.

Eternal Idol:
Es muy simple la verdad ... pensa un poco. ¿Donde ves algun limite?

jvmjunior:
He llenado mi pantalla con carateres y esto me sigue funcionando......es justamente por eso mi duda

Gracias

Eternal Idol:
Es normal que funcione, solo estas escribiendo sobre memoria virtual que no te fue asignada por el monticulo, ya encontraste la solucion.

m0skit0:
strcpy(passwd, pas); es vulnerable porque copia todo hasta encontrar un NULL.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa