-
-
[求助]一段触发异常代码的问题
-
发表于:
2010-8-11 11:22
3381
-
下面是我写的一个程序的代码片段
设置一个异常处理函数 然后制造一个触发异常的代码 在OD里面会把这个代码当作一个断点就不执行异常处理函数 在没有OD的情况下就会执行 用来检测OD 但是我这代码的异常处理函数就是不执行
昨天晚上写的时候都能够执行了 今天早上机器突然断电 给代码弄没了 在写出来 就不好使
希望高手帮忙找找哪里写错了


//////////////////////////////////////////////////////////////////////////////////
//Exception.start
#pragma data_seg(".kk")
BOOL Exceptioni = FALSE;
#pragma data_seg()
#pragma comment(linker, "/section:.kk,RSW")
LONG WINAPI Exceptionfun(struct _EXCEPTION_POINTERS *ExceptionInfo)
{
Exceptioni = TRUE;
AfxMessageBox("aaaaaaa");
return EXCEPTION_CONTINUE_EXECUTION;
}
void CAntiTestDlg::OnButton1()
{
if (IsException())
{
MessageBox("没有发现OD");
}
else
{
MessageBox("发现OD");
}
}
BOOL CAntiTestDlg::IsException()
{
// TODO: Add your control notification handler code here
PDWORD pw;
::SetUnhandledExceptionFilter(Exceptionfun);
LPVOID addr= ::VirtualAlloc(NULL,0x1000,MEM_COMMIT,PAGE_READWRITE);
*((PDWORD)addr) = 0xc3;
::VirtualProtect(addr,0x1000,PAGE_EXECUTE_READ|PAGE_GUARD,pw);
_asm{
mov ecx,addr;
call ecx;
}
return Exceptioni;
}
//Exception.end
//////////////////////////////////////////////////////////////////////////////////
[培训]科锐逆向工程师培训第53期2025年7月8日开班!