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

[旧帖] [原创]缓冲区溢出简单示例 0.00雪花

2013-10-21 17:50
1137
看书看到了缓冲区溢出,就自己想想这个原理,然后就有了这么一个程序示例,望大牛们多赐教
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//缓冲区溢出攻击简例
 
#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;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册