-
-
[求助]cad异常问题,用arx处理
-
发表于:
2016-1-13 16:28
3243
-
我在arx的On_kInitAppMsg()中成功添加了TopLevelExcepFilter这个UEH,并禁用SetUnhandledExceptionFilter:
old_TopLevelExcepFilter=SetUnhandledExceptionFilter(&TopLevelExcepFilter);
DisableSetUnhandledExceptionFilter();
MessageBox(0,_T("On_kInitAppMsg"),_T("安装UnhandledExceptionFilter成功"),MB_OK);
void DisableSetUnhandledExceptionFilter()
{
void *addr = (void*)GetProcAddress(LoadLibrary(_T("kernel32.dll")), "SetUnhandledExceptionFilter");
if (addr)
{
unsigned char code[16];
int size = 0;
code[size++] = 0x33;
code[size++] = 0xC0;
code[size++] = 0xC2;
code[size++] = 0x04;
code[size++] = 0x00;
DWORD dwOldFlag, dwTempFlag;
VirtualProtect(addr, size, PAGE_READWRITE, &dwOldFlag);
WriteProcessMemory(GetCurrentProcess(), addr, code, size, NULL);
VirtualProtect(addr, size, dwOldFlag, &dwTempFlag);
}
}
但我发现cad崩溃的时候并没有执行我的TopLevelExcepFilter(),还是先执行了cad崩溃的函数。
究竟为什么呢?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)