Obtuve una tarea que me pedía invocar una función sin llamarla explícitamente, usando el desbordamiento del búfer. El código es básicamente esto:¿Cómo puedo invocar el desbordamiento del búfer?
#include <stdio.h>
#include <stdlib.h>
void g()
{
printf("now inside g()!\n");
}
void f()
{
printf("now inside f()!\n");
// can only modify this section
// cant call g(), maybe use g (pointer to function)
}
int main (int argc, char *argv[])
{
f();
return 0;
}
Aunque no estoy seguro de cómo proceder. Pensé en cambiar la dirección de retorno del contador del programa para que proceda directamente a la dirección de g(), pero no estoy seguro de cómo acceder a ella. De todos modos, los consejos serán geniales.
4 upvotes para una pregunta de tarea! El OP ni siquiera se le ocurrió la pregunta ... wow, algunas personas se impresionan fácilmente. – Lazarus
@Lazarus, He subido tu comentario. ¡UH oh!:-) –
@Lazarus el hecho de que sea una pregunta de tareas no tiene nada que ver con el hecho de que me parece interesante. También lo voté porque quiero alentar preguntas interesantes sobre tareas en lugar de la simple "Cerré el búfer de archivos y ahora, cuando intento leer el archivo, no funciona. ¿Por qué?" (En otras palabras, renuncié a las preguntas que no sé la respuesta, pero quiero) – Yacoby