首页 > 代码库 > 在C语言中破坏函数调用堆栈

在C语言中破坏函数调用堆栈

 1 // 这段代码显示,在C语言修改函数的返回地址
 2 int test1()
 3 {
 4   return 0;      
 5 }
 6 
 7 int test2(int a)
 8 {
 9   *(&a-1) = (int)test1;   // 将返回地址修改为test1  
10   return a;
11 }
12 
13 int main()
14 {
15   test2(10);
16   return 0;
17 }