首页
社区
课程
招聘
[旧帖] 缓冲区溢出问题 0.00雪花
发表于: 2010-7-5 22:34 3482

[旧帖] 缓冲区溢出问题 0.00雪花

2010-7-5 22:34
3482
有一种用来定位shellcode的方式是通过用一条"JMP ESP"指令的地址覆盖返回地址,然后执行后边的shellcode,,

总是搞不清楚为什么要这样,,跳到一个地址去然后再跳回来,,直接把返回地址覆盖成NOP不就可以执行到shellcode了么?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
2
返回的时候是程序到堆栈中找返回地址,然后去返回地址那里去执行,而不是直接到堆栈里去执行
2010-7-5 22:43
0
雪    币: 72
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那么用NOP代替jmp esp 可以么?
2010-7-5 23:13
0
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
当然不可以.除非你的地址执行是在ESP的后面.
2010-7-6 06:55
0
雪    币: 72
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不太明白,如果覆盖成NOP把shellcode放在返回地址之后不就顺序执行到shellcode了么?
2010-7-6 14:06
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
6
按你的思路就是把返回地址覆盖成0x90909090,你试试看会怎样啊?
2楼的兄弟已经解释过了。
2010-7-6 14:43
0
雪    币: 145
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
如果不考虑通用性,可以直接把返回地址直接覆盖为shellcode的地址。
书中讲的是通用的方法,覆盖返回地址是改变EIP,此时为了通用性的考虑,EIP 并没有指向栈上的地址,jmp ESP指令执行后有个EIP的改变。这时EIP才指向栈上。
2010-7-6 18:05
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
8
为了战胜不可执行栈。
2010-7-6 18:22
0
游客
登录 | 注册 方可回帖
返回
//