加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

损坏调用堆栈的C/C++代码

发布时间:2020-12-16 10:21:44 所属栏目:百科 来源:网络整理
导读:是否有可能通常的代码损坏c / c中的调用堆栈? 我不是指某种黑客或某种东西,只是一种疏忽的错误或其他东西,而不是随意的,这样每次都会损害它. 有人告诉我,一位前同事管理但我不认为这是可能的. 有人有这样的经历吗? 解决方法 是的,很容易.事实上,这是一个非
是否有可能通常的代码损坏c / c中的调用堆栈?
我不是指某种黑客或某种东西,只是一种疏忽的错误或其他东西,而不是随意的,这样每次都会损害它.
有人告诉我,一位前同事管理但我不认为这是可能的.
有人有这样的经历吗?

解决方法

是的,很容易.事实上,这是一个非常常见的问题.考虑一下:

void foo()
{
    int i;
    int *p = &i;
    p -= 5; // now point somewhere god knows where,generally undefined behavior
    *p = 0; // boom,on different compilers will end up with various bad things,// including potentially trashing the call stack
}

许多本地数组/缓冲区的超出边界访问的情况最终都是被破坏的堆栈.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读