首页
社区
课程
招聘
[求助]pop pop ret类型的SEH溢出现在还能用吗。
发表于: 2014-8-25 18:12 4728

[求助]pop pop ret类型的SEH溢出现在还能用吗。

2014-8-25 18:12
4728
跟了一会,感觉跳到Handler里面的时候,esp+8不是SEH结构的指针,不知道我跟错了还是新的编译器不是这么弄的。
就是这样
	__try{
		__asm xor eax,eax
		__asm mov eax,dword ptr[eax]

	}
	__except(EXCEPTION_EXECUTE_HANDLER){
		printf("321\n");      //第一句是mov esp,[ebp-0x18]
	}

在mov esp,[ebp-0x18]这一句之前, esp+8似乎不是SEH的指针,pop pop ret就无法成功了吧。

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2153
活跃值: (740)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
SEH是由FS寄存器保存指针的,数据则放在堆栈里
2014-8-25 18:18
0
雪    币: 135
活跃值: (63)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
pop pop ret的原理好像是,

handler指向pop pop ret3条连续指令,也就是调用handler的时候,[esp+8]就是SEH结构的地址。但是我跟了一下发现不是这样,vs2008编译,debug和release的[esp+8]都不是这个值。
SEH结构的地址,第一个是PrevHandler,让其被溢出成为短跳,跳到shellcode,当然是没有dep的情况。
2014-8-25 18:38
0
游客
登录 | 注册 方可回帖
返回
//