首页
社区
课程
招聘
[求助]一段触发异常代码的问题
发表于: 2010-8-11 11:22 3381

[求助]一段触发异常代码的问题

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日开班!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 317
活跃值: (13)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
用原版OD无插件试验了,可以Anti调试
123456
2010-8-11 13:04
0
雪    币: 338
活跃值: (103)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
关键是不能正常运行 没OD的时候也显示有OD 嘎嘎  程序流程是这么设计的 所以。。。
2010-8-11 13:13
0
雪    币: 338
活跃值: (103)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
4
原因找到了 竟然是::VirtualProtect(addr,0x1000,PAGE_EXECUTE_READ|PAGE_GUARD,pw);
最后一个参数错了 我给进去的直接就是一个指针 应该是一个变量的地址 上面的方法没有之际的内存(应该是这样把) 问题解决了
2010-8-11 13:42
0
雪    币: 317
活跃值: (13)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
123456
2010-8-11 14:16
0
游客
登录 | 注册 方可回帖
返回