[讨论]用__try......__except()捕捉执行异常
用__try......__except()捕捉RING3的执行异常是可以的:void CatchExectionException()
{
typedef void (*TESTFUNC)(void);
TESTFUNC TestFunc;
ULONG xx=0xc3909090,zz;
TestFunc=(TESTFUNC)(&xx);
VirtualProtect(&xx,4,PAGE_EXECUTE_READWRITE,&zz);//这句很重要
__try
{
TestFunc();
}
__except(EXCEPTION_EXECUTE_HANDLER) //出错就会执行到这里
{
MessageBoxA(0,"fuck",0,0);
}
}
如果不加VirtualProtect,无论是X86,还是X64,都会弹出"fuck"对话框,如果加了则不弹出。
但是,如果把这段代码移植到RING0,当执行到没有可执行属性的内存时,会马上蓝屏。
求助:如何捕捉RING0下的执行异常(判断内核内存有没有可执行属性)? sb666 发表于 2012-7-10 11:31 static/image/common/back.gif
我估计只能一个一个试了……蓝了就再换……
你脑部残疾了么???{:soso_e141:} 依然使用__try......__except() watchsky 发表于 2012-7-10 17:28 static/image/common/back.gif
依然使用__try......__except()
我试过,会蓝屏。
要不你放一个带SRC的DEMO上来看看。 Tesla.Angela 发表于 2012-7-11 12:49 static/image/common/back.gif
我试过,会蓝屏。
要不你放一个带SRC的DEMO上来看看。
src找不到了,记得AK922里用到过,x86的驱动应该没问题 看看
页:
[1]