• Viernes 15 de Noviembre de 2024, 04:39

Autor Tema:  Como desbordar la memoria con este Programa??  (Leído 1704 veces)

jvmjunior

  • Visitante
Como desbordar la memoria con este Programa??
« en: Martes 26 de Mayo de 2009, 19:25 »
0
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

    • Moderador
    • ******
    • Mensajes: 4696
    • Nacionalidad: ar
      • Ver Perfil
    Re: Como desbordar la memoria con este Programa??
    « Respuesta #1 en: Martes 26 de Mayo de 2009, 20:46 »
    0
    Es muy simple la verdad ... pensa un poco. ¿Donde ves algun limite?

    Nacional y Popular En mi país la bandera de Eva es inmortal.


    Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
    ¡Perón cumple, Evita dignifica!


    La mano invisible del mercado me robo la billetera.

    jvmjunior

    • Visitante
    Re: Como desbordar la memoria con este Programa??
    « Respuesta #2 en: Martes 26 de Mayo de 2009, 22:24 »
    0
    He llenado mi pantalla con carateres y esto me sigue funcionando......es justamente por eso mi duda

    Gracias

    Eternal Idol

    • Moderador
    • ******
    • Mensajes: 4696
    • Nacionalidad: ar
      • Ver Perfil
    Re: Como desbordar la memoria con este Programa??
    « Respuesta #3 en: Miércoles 27 de Mayo de 2009, 00:00 »
    0
    Es normal que funcione, solo estas escribiendo sobre memoria virtual que no te fue asignada por el monticulo, ya encontraste la solucion.

    Nacional y Popular En mi país la bandera de Eva es inmortal.


    Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
    ¡Perón cumple, Evita dignifica!


    La mano invisible del mercado me robo la billetera.

    m0skit0

    • Miembro de PLATA
    • *****
    • Mensajes: 2337
    • Nacionalidad: ma
      • Ver Perfil
      • http://fr33kk0mpu73r.blogspot.com/
    Re: Como desbordar la memoria con este Programa??
    « Respuesta #4 en: Miércoles 27 de Mayo de 2009, 10:11 »
    0
    strcpy(passwd, pas); es vulnerable porque copia todo hasta encontrar un NULL.

    Eternal Idol

    • Moderador
    • ******
    • Mensajes: 4696
    • Nacionalidad: ar
      • Ver Perfil
    Re: Como desbordar la memoria con este Programa??
    « Respuesta #5 en: Miércoles 27 de Mayo de 2009, 10:29 »
    0
    Si m0skit0, eso me parece que ya lo sabemos  :lol:

    Nacional y Popular En mi país la bandera de Eva es inmortal.


    Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
    ¡Perón cumple, Evita dignifica!


    La mano invisible del mercado me robo la billetera.

    jvmjunior

    • Visitante
    Re: Como desbordar la memoria con este Programa??
    « Respuesta #6 en: Miércoles 27 de Mayo de 2009, 18:10 »
    0
    Sigo sin encontrarle la solución, esto me funciona con cualquier valor que le dés, no sé a ustedes

    M0skit0... vos sos el tipaso pa esto.....haber danos una lección!!

    Gracias.
    Saludos.

    Eternal Idol

    • Moderador
    • ******
    • Mensajes: 4696
    • Nacionalidad: ar
      • Ver Perfil
    Re: Como desbordar la memoria con este Programa??
    « Respuesta #7 en: Miércoles 27 de Mayo de 2009, 19:01 »
    0
    Mejor averigua el concepto de desbordamiento de buffer; la solucion ya la tenes.

    Nacional y Popular En mi país la bandera de Eva es inmortal.


    Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
    ¡Perón cumple, Evita dignifica!


    La mano invisible del mercado me robo la billetera.