文章源自【字节脉搏社区】-字节脉搏实验室
作者-Jadore
栈:先进后出
动态调试下的栈:
几个寄存器:
EAX:函数执行完后的返回结果
ECX:计数器
EDX、EBX:计算器
ESP:指向栈顶的指针...fr=aladdin
缓冲区溢出(Buffer Overflow|Buffer Overrun):
由于程序设计时缺乏对缓冲区(Buffer)的边界进行检查而导致在向缓冲区写入超过其本身的数据时而引起的异常...产生缓冲区溢出的几种可能:
1.数组索引不在合法范围内
通常我们可能比较多地注意到数组的上界不应被超过,而往往却不太会在意数组的下界,来看到这个例子:
#include
int main...整数溢出:
整数溢出可分为宽度溢出和算术溢出
宽度溢出:把一个宽度较大的操作数赋给宽度较小的操作数,就有可能发生数据截断或符号位丢失(分别对应以下两个例子):
#include
int...','3','4','5','6','7','8',’\0’};
或者char array[11]={'0','1','2','3','4','5','6','7','8','9’};
这里看看相关的缓冲区溢出漏洞