缓冲区溢出

参考博客:https://blog.csdn.net/qq_35289660/article/details/104707842

就是利用栈中的数组变量越界修改到函数的返回地址,使函数结束的时候跑到其他位置。

#include <stdio.h>

void HelloWorld() {
printf("Hello World");
getchar();
}

void Fun() {
int arr[5] = {1, 2, 3, 4, 5};
arr[6] = (int)HelloWorld;
}

int main() {
Fun();
return 0;
}

这个代码我用mingw的g++没成功,回去用od再调一下看看

文章目录