首页
社区
课程
招聘
[技术专题]软件漏洞分析入门_3_初级栈溢出B_系统栈原理
2007-12-14 00:13 50985

[技术专题]软件漏洞分析入门_3_初级栈溢出B_系统栈原理

2007-12-14 00:13
50985
收藏
点赞7
打赏
分享
最新回复 (134)
雪    币: 459
活跃值: (652)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
ssarg 2007-12-14 20:03
26
0
还好,我找的树较高,继续听
雪    币: 625
活跃值: (1057)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xzchina 1 2007-12-14 20:41
27
0
惟妙惟肖
在后排挺直腰杆继续旁听.
雪    币: 350
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
要学会编 2007-12-15 00:46
28
0
晕啊,都排到第4排了. 秉烛夜读.
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
黯魂 2007-12-15 01:20
29
0
作者风趣幽默的写作风格让我十分仰慕 :) 当然,文章更浅显易懂,感谢作者带来如此好的文章
雪    币: 1773
活跃值: (756)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
yijun8354 12 2007-12-15 11:52
30
0
继续学习~~~
雪    币: 479
活跃值: (25)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
dttom 3 2007-12-16 13:42
31
0
“对于__stdcall调用约定,函数调用时用到的指令序列大致如下:

  ;调用前
push 参数3    ; 假设该函数有3个参数,将从右向左依次入栈
push 参数2   
push 参数1   
call 函数地址  ; call指令将同时完成两项工作:a)向栈中压入当前指令在内存中的位置,          ; 即保存返回地址;b)跳转到所调用函数的入口地址
........

上面这段用于函数调用的指令在栈中引起的变化如下图所示:”
图中的参数入栈是不是应该这样:

....

arg1
arg2
arg3

......

不能发图,只能用文字表示了
雪    币: 350
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
要学会编 2007-12-16 14:39
32
0
楼上的朋友没理解栈的生长规则吧. 栈底位置大,栈顶位置小,  你发的没有指明栈顶和栈底的方向,没法说你对错.
雪    币: 479
活跃值: (25)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
dttom 3 2007-12-16 17:25
33
0
我是针对这个图来说的
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
黑色猎鹰 2007-12-16 18:02
34
0
顶啊~~~~~~~
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
鲲鹏 2007-12-16 19:31
35
0
很好!支持!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
webfly 2007-12-17 22:52
36
0
感觉讲的不错~~
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aleon 2007-12-18 00:28
37
0
呵呵 非常通俗易懂 建议再推荐一些进阶读物比较好
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
icersg 2007-12-18 15:15
38
0
[QUOTE=failwest;391651]
还是以C语言和WIN32平台为例,函数返回时的相关的指令序列如下:  

  
add xxx, esp  ;降低栈顶,回收当前的栈帧
pop ebp    ;将上一个栈帧底部位置恢复到ebp,
retn      ;这条指令有两个功能:a)弹出当前栈顶元素,即弹出栈帧中的返回地址。至此        ;栈帧恢复工作完成。b)让处理器跳转到弹出的返回地址,恢复调用前的代码区

[/QUOTE]

请问这里是不是应该为 add esp, xxx ?
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jinghui 2007-12-18 15:45
39
0
我很喜欢哥哥的讲课风格,有大师的风范,很受学生欢迎
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zgbhome 2007-12-18 18:25
40
0
学习中。
雪    币: 350
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
要学会编 2007-12-18 19:41
41
0
报告老师,图中的参数入栈示意图,31楼同学发现的,俺也觉得是不是方向画错了. 刚才又精读一遍.
雪    币: 2041
活跃值: (261)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
failwest 8 2007-12-18 21:47
42
0
谢谢指出的问题,是我不小心搞错了,示意图和前边的讲解没有完全匹配。幸好还没有最终定稿,可以在出版之前改过来,要不就对不住读者了。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lmcc 2007-12-19 00:05
43
0
来晚了,学到第三课了,最近在看<深入理解计算机系统> 这本书,讲的实在是枯燥乏味啊,还是楼猪帅哥讲的生动啊些``,洗洗睡了,明天接着学!
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
大菜一号 21 2007-12-19 05:20
44
0
不顶对不起毛主席
雪    币: 2041
活跃值: (261)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
failwest 8 2007-12-19 10:19
45
0
是我的疏忽,谢谢指出。

再发现什么错误欢迎提出啊,现在发现还有得改,可以尽量把错误消灭在书出版之前:)
雪    币: 224
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
saga 2 2007-12-19 10:33
46
0
楼主 佩服!!
还制作了图片

谢谢了!
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
紫色的魚 2007-12-20 11:53
47
0
向楼主致敬!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aflyingpig 2007-12-20 18:59
48
0
楼主太伟大了!
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
angoler 2007-12-21 11:26
49
0
支持,多发表一些这样的文章,以利于大家的提高.
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
runstop 2007-12-21 17:50
50
0
楼主的文章写的真好,喜欢看这样的东西
  
   TOP:标识栈顶位置,并且是动态变化的。每做一次PUSH操作,它都会自增1;相反每做一次POP操作,它会自减1。栈顶元素相当于扑克牌最上面一张,只有这张牌的花色是当前可以看的。

  这里是不是有点小问题,每做一次PUSH操作,栈顶应该是减小的吧
游客
登录 | 注册 方可回帖
返回