损坏调用堆栈的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 } 许多本地数组/缓冲区的超出边界访问的情况最终都是被破坏的堆栈. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |