首页
社区
课程
招聘
关于溢出JMP/CALL EBX两个问题向各位请教
发表于: 2013-12-29 08:12 4476

关于溢出JMP/CALL EBX两个问题向各位请教

2013-12-29 08:12
4476
关于溢出JMP/CALL EBX两个问题向各位请教:

各位好,我是新手,昨晚看《Q版缓冲区溢出教程》和相关文章,有两个事儿不明白,想了一宿没有答案,敬请各位帮助:

1、既然用JMP EBX方式需要事先确定异常处理程序入口地址,为何不直接用ShellCode将异常处理程序覆盖,而是要先JMP EBX再JMP 04这么间接?

2、先JMP EBX往低址跳4,再JMP 04跳回,这样不是会在两个JMP间循环往复吗?为何JMP 04后会进入ShellCode?

谢谢!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1121
活跃值: (652)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
2
介个怎么没人回答呢?
1. 程序自己的异常处理函数代码在text段里;函数的指针,在栈上存着。你既然是栈溢出,如何覆盖到text段?只能覆盖了函数指针。
2. JMP,Call语句后面的偏移,计算的都是该语句之后的,JMP EBX共4个字节,在jmp04语句之后,jmp04之后,刚好跳到JMP EBX后面。
2013-12-31 13:11
0
雪    币: 94
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢!问题2我明白了。
问题1我好像也明白了,是不是说,SEH结构放在系统栈中,JMP EBX方式的缓冲区溢出一直溢出到系统栈,把地址最低的那个SEH结构给覆盖了?
2014-1-1 07:56
0
雪    币: 1121
活跃值: (652)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
4
你只要找一个能走到的最近的覆盖住就行。最低的太远,万一中间某个处理能处理掉这个异常,就走不到你的shellcode了
2014-1-2 09:23
0
雪    币: 94
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不是第一个SEH结构的地址最低么?我又懵了。。。。
2014-1-3 03:12
0
雪    币: 1121
活跃值: (652)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
6
具体会不会低我不清楚,SEH是一个链表,自然是按着链来分析,而不是按着地址啊
2014-1-3 08:39
0
雪    币: 94
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
多谢了!已给分
2014-1-3 11:12
0
游客
登录 | 注册 方可回帖
返回
//