Wie kann ich einen Pufferüberlauf aufrufen?

Ich habe eine Hausaufgabe bekommen, in der ich gebeten wurde, eine Funktion aufzurufen, ohne sie explizit aufzurufen, wobei ein Pufferüberlauf verwendet wurde. Der Code lautet im Grunde:

#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;
}

Ich bin mir jedoch nicht sicher, wie ich vorgehen soll. Ich habe darüber nachgedacht, die Rücksprungadresse für den Programmzähler so zu ändern, dass er direkt zur Adresse von g () wechselt, bin mir aber nicht sicher, wie ich darauf zugreifen soll. Tipps werden auf jeden Fall großartig sein.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage