缓冲区溢出
参考博客: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再调一下看看