Programación General > C/C++
Como desbordar la memoria con este Programa??
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
[#] Página Siguiente
Ir a la versión completa