バッファオーバーフローを使用して、関数を明示的に呼び出さずに呼び出すように求める宿題を受け取りました。コードは基本的に次のとおりです。
#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;
}
どのように進めればよいかわかりませんが。プログラムカウンタのリターンアドレスをg()のアドレスに直行するように変更しようと思ったのですが、アクセス方法がわかりません。とにかく、ヒントは素晴らしいでしょう。