-
-
[旧帖] [求助]覆盖SEH的问题? 0.00雪花
-
发表于: 2011-9-27 16:09 1107
-
现在在看Q版缓冲区溢出这边书,
在1.9.2覆盖异常中,提到:
“所以在刚进入异常处理判断是否使用处理程序1时,EBX为处理程序2的地址,就像图1-33一样。大家
可以想象,如果系统判断不使用处理程序1,就从EBX得到处理程序2的地址,并对处理程序2进行判断;
而EBX又自动变为处理程序3的地址。这样就形成一个异常处理串,可以最后寻找到链表结束而不中断。“
看了一下SEH的机制,并没有提到seh中ebx会指向下个handler的函数地址,只是说结构EXCEPTION_REGISTRATION中的prev会指向下一个EXCEPTION_REGISTRATION的地址,那么这里ebx是如何获得下个handler函数地值的呢???
在1.9.2覆盖异常中,提到:
“所以在刚进入异常处理判断是否使用处理程序1时,EBX为处理程序2的地址,就像图1-33一样。大家
可以想象,如果系统判断不使用处理程序1,就从EBX得到处理程序2的地址,并对处理程序2进行判断;
而EBX又自动变为处理程序3的地址。这样就形成一个异常处理串,可以最后寻找到链表结束而不中断。“
看了一下SEH的机制,并没有提到seh中ebx会指向下个handler的函数地址,只是说结构EXCEPTION_REGISTRATION中的prev会指向下一个EXCEPTION_REGISTRATION的地址,那么这里ebx是如何获得下个handler函数地值的呢???
赞赏
他的文章
- [求助]使用TEB中获取kernel地址的疑问? 1360
- [求助]覆盖SEH的问题? 1108
- [求助]标号中定义变量是否有作用域的问题??? 1324
看原图
赞赏
雪币:
留言: