-
-
[求助]异常捕捉的实现可以这样子吗?
-
发表于:
2012-3-2 02:48
5338
-
比如 我知道一个函数出错的位置. 比如在00404b42
IDA F5如下 很明显是类中的函数 可以用 __stdcall 直接HOOK 无参数不影响 ECX
DWORD _thiscall sub_00404B42(void *this)
{
004.....
004.....
00404b42 add esp,108 //出错的提示在这里 堆栈溢出 有时候溢出,有时候不溢出
004..... ret
}
现在我要捕捉这个异常.挂一个DLL进去 HOOK 这个位置
HOOK 实现 HOOK过程省略
DWORD rv = 0;//初始化返回值
DWORD __stdcall My00404b42()
{
__try{
___try
{
rv = sub_00404B42(); //执行原始代码 只知道在这个函数里面出错,但无具体位置 如何捕捉?
}
__except(..获取异常代码..)
{
....异常后的处理
rv = 0;
}
__finally
{
}
return rv;
}
1.为什么这样子HOOK 捕捉不到 0xC0000409 (栈溢出) 的异常呢?
2.如果捕捉到了要让程序不崩溃,而是忽略执行结果继续运行该怎么样处理?
请各位大侠指点一下.非常感谢您的帮助 :)
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课