-
-
[旧帖] [原创]缓冲区溢出简单示例 0.00雪花
-
发表于: 2013-10-21 17:50 1168
-
看书看到了缓冲区溢出,就自己想想这个原理,然后就有了这么一个程序示例,望大牛们多赐教
//缓冲区溢出攻击简例
#include<stdio.h>
//正常调用函数
void good(){ puts("good!"); }
//溢出攻击函数
void bad(){ puts("bad!"); }
//函数指针
typedef void (*ptr)();
//用于小端地址输出的联合体
typedef union _ADDR_STRING{
int addr;
char str[4];
}ADDR_STRING;
//main entry.
int main(int argc,char* argv[]){
ptr func = good;
//VC6.0环境下,str溢出后邻接func
char str[3] = "!!!";
ADDR_STRING addr;
//攻击函数地址
addr.addr = (int)bad;
//缓冲区溢出入口
sprintf(str,"!!!!%c%c%c%c",
addr.str[0],
addr.str[1],
addr.str[2],
addr.str[3]);
//func已经被替换为bad
func();
return 0;
}
[培训]传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- [原创]缓冲区溢出简单示例 1169
赞赏
雪币:
留言: