EBP:指向栈底的指针
ESI、EDI:源地址,目的地址寄存器
EIP:存储CPU要读取指令的地址
莫里斯蠕虫(Morris worm):
https://baike.baidu.com/item/%...没有保证足够的存储空间存储复制过来的数据:
strcpy是一个不安全的函数,看这个例子:
#include
int main()
{
int array[]={1,2,3,4,5,6,7,8,9...};
int array2[9];
strcpy(array2,array);
return 0;
}
而莫里斯蠕虫利用的不安全函数为gets,gets函数与strcpy函数一样,并没有检查数组越界的功能...空字符错误:
当’\0’用%c输出时是空格,而用%d输出时是0
#include
int main()
{
char array[]=”1”;
printf(“%d”,str[1]);...:
首先构造含跳转地址的填充字符串jumper,初始化长度为70字节,内容为’A’–’Z’的随机字符串,从第5字节起填充4字节由初始化变量Ret定义的返回地址6,从第51字节起填充8字节的空指令和2字节的跳转指令