首页
社区
课程
招聘
[技术专题]软件漏洞分析入门_2_初级栈溢出A_初识数组越界
2007-12-13 10:27 57898

[技术专题]软件漏洞分析入门_2_初级栈溢出A_初识数组越界

2007-12-13 10:27
57898
收藏
点赞7
打赏
分享
最新回复 (156)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
richardhc 2008-3-7 22:42
101
0
谢谢~学习了!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
啊斯螃蟹 2008-3-8 14:26
102
0
学习了..很多都不理解
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
joephoenix 2008-3-9 00:47
103
0
好像很复杂。。。。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
youngbean 2008-3-22 15:17
104
0
调试环境:vc6.0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fengziling 2008-3-25 17:14
105
0
拜一个···················
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
crackodin 2008-3-26 20:15
106
0
学习了,期待下一章精彩的内容!!
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yfyfj 2008-3-28 19:26
107
0
学习了。 为什么要 strcpy(buffer,password);
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
钟龙 2008-4-11 02:00
108
0
谢谢楼主,非常适合我们菜鸟的水平
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
中级商人 2008-4-11 02:40
109
0
简单易懂,谢谢了!我最近才看到看雪的,觉得确实比较好!
雪    币: 249
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pwangeng 2008-5-21 11:03
110
0
#include <stdio.h>
#include <string.h>

#define PASSWORD "1234567"
int verify_password (char *password)
{
  char buffer[8];  //这里把buffer 和 authenticated定义的位置调下是否就不存在漏洞了呢?
  int authenticated;
  //char buffer[8];  // add local buff to be overflowed
  authenticated=strcmp(password,PASSWORD);
  strcpy(buffer,password);  //over flowed here!  
  return authenticated;
}
main()
{
  int valid_flag=0;
  char password[1024];
  while(1)
  {
    printf("please input password:");
    scanf("%s",password);
    valid_flag = verify_password(password);
    if(valid_flag)
    {
      printf("incorrect password!\n\n");
    }
    else
    {
      printf("Congratulation! You have passed the verification!\n");
      break;
    }
  }
}
雪    币: 16
活跃值: (350)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ZSYL 2008-5-23 02:46
111
0
支持,为什么变量和数组的存放是
buffer[0-3]
buffer[4-7]
authenticated
而不是
authenticated
buffer[0-3]
buffer[4-7]
下面的这样就算溢出也不会得到正确的结果啊?
雪    币: 249
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pwangeng 2008-5-23 20:31
112
0
[QUOTE=ZSYL;457059]支持,为什么变量和数组的存放是
buffer[0-3]
buffer[4-7]
authenticated
而不是
authenticated
buffer[0-3]
buffer[4-7]
下面的这样就算溢出也不会得到正确的结果啊?[/QUOTE]

因为定义的时候是先authenticated 然后buffer[],系统给变量开辟帧栈的时候是先进后出依次存放,所以先对authenticated压栈,然后对buuff[]压栈,而buffer[]分buffer[0-3]和buffer[4-7],windows系统中按搞地址向低地址存放,所以先对buffer[4-7]压栈,再对buffer[0-3]故而最终存放的是:
buffer[0-3]
buffer[4-7]
authenticated

//不知道我的理解是否正确,请各位大牛指教。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Liquidworm 2008-7-20 07:59
113
0
我想你也许知道,因为这是常识,可能是你的大意了或者你的编译器可以包含默认的头文件,但是你没有在代码中#include <string.h>,呵呵,最近我学习bufferoverflow,正在看你的文章 ,写的真好,谢谢你~
雪    币: 253
活跃值: (46)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
tangwenbin 1 2008-8-27 19:09
114
0
现在发现自己还是逆向技术不行啊
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
黎民佰姓 2008-8-29 19:40
115
0
支持了再学习~~~
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yzjiao 2008-9-1 11:55
116
0
把几篇教程全部下载下来了,回去看了5篇文章了,今天特地来感谢的
支持看雪,支持failwest!
大家共同进步吧,呵呵!
雪    币: 200
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
MyCracker 2008-9-1 19:21
117
0
好像明白点了,继续学习!
雪    币: 200
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
MyCracker 2008-9-1 19:28
118
0
“扫盲课程”???
呵呵,很形象!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
domaryj 2009-1-20 10:55
119
0
刚开始学啊!加油看!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
水知寒 2009-1-22 10:18
120
0
学习了,感谢
雪    币: 286
活跃值: (14)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
liyiwen 1 2009-3-25 17:50
121
0
没想到这么经典,越来越喜欢看雪了,希望有一天也能练就一身好功夫,也不愧看雪提供如此好的学习环境,表示感谢。
雪    币: 492
活跃值: (41)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
hacklang 1 2009-3-26 16:05
122
0
不错,不过这本书我已经看过了。
雪    币: 222
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
foresee 2 2009-3-28 20:48
123
0
我还没看完,,,
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
eastcloud 2009-3-29 02:54
124
0
膜拜膜拜膜拜
雪    币: 132
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
coolskyboy 2009-7-27 01:15
125
0
用了12个字符才通过。。。dev 编译的。
游客
登录 | 注册 方可回帖
返回