首页
社区
课程
招聘
[旧帖] [原创]缓冲区溢出简单示例 0.00雪花
发表于: 2013-10-21 17:50 1168

[旧帖] [原创]缓冲区溢出简单示例 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;
}

[培训]传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回