-
-
[求助]cad异常问题,用arx处理
-
发表于:
2016-1-13 16:28
3343
-
我在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崩溃的函数。
究竟为什么呢?
[培训]科锐逆向工程师培训第53期2025年7月8日开班!