Hola,
Tal vez me puedan ayudar. Soy nuevo en el mundo de la programación. Estoy leyendo el libro Teraexe e intentando aprender como funciona el desbordamiento de buffer.
Utilicé los códigos que da el libro para realizar programas vulnerables al desbordamiento de buffer. Fueron escritos para funcionar en windows XP SP2.
Compilé el código con Dev C++ sin problema. Pero al intentar ejecutarlo aparece la ventana de que el programa dejó de funcionar y se cierra.
Adjunto el código para ver si alguien me puede ayudar. Estoy trabajando en windows 7.
---------------------------------------------------------------------------------------------------
#include <stdio.h>
//El archivo de cabecera string.h para usar la función strcpy:
#include <string.h>
//Declarando una función:
int AGene_Function();
/*La Función Main:
En el segundo parámetro se encuentra un string variable, el cual
contendrá el número de caracteres enviados a la línea de comandos.*/
int main(int argc, char *argv[]) {
//Creando un string variable (de tamaño 768) para almacenar caracteres:
char AGene_String[768];
//La función strcpy para copiar el string de argv a la variable AGene_String:
strcpy(AGene_String, argv[1]);
//Usando la función printf para crear la vulnerabilidad de buffer overflow:
printf("%s", AGene_String);
//Terminar la función main:
return 0;
};
//Definiendo una función:
int AGene_Function() {
printf("\n\nPrimer mensaje.\n"); // Posición de Memoria: 004010B8 = \xB8\x10\x40\x00
printf("\nSegundo mensaje.\n"); // Posición de Memoria: 004010C5 = \xC5\x10\x40\x00
printf("\nTercer mensaje.\n"); // Posición de Memoria: 004010D2 = \xD2\x10\x40\x00
return 0;
}
------------------------------------------------------------------------------------------------