Stack buffer overflow跟Stack overflow这两个概念有什么区别
Stack buffer overflow和Stack overflow这两个概念有什么区别?
学习windbg的时候发现sx命令的帮助选项:
sbo - Stack buffer overflow - break - not handled
sov - Stack overflow - break - not handled
这两个概念到底有什么区别?
------解决方案--------------------
Stack buffer overflow
栈缓冲区溢出
Stack overflow
栈溢出
前者是指你分配的缓冲区只有这么大,结果写入了超量的数据。
后者是指你在栈上分配的内存超过了线程栈的大小,VC默认1MB
学习windbg的时候发现sx命令的帮助选项:
sbo - Stack buffer overflow - break - not handled
sov - Stack overflow - break - not handled
这两个概念到底有什么区别?
------解决方案--------------------
Stack buffer overflow
栈缓冲区溢出
char a[1] = {0};
char b[20] = {0};
memcpy(a, b, 20);
Stack overflow
栈溢出
int b[10000000] = {0};
前者是指你分配的缓冲区只有这么大,结果写入了超量的数据。
后者是指你在栈上分配的内存超过了线程栈的大小,VC默认1MB