首页
社区
课程
招聘
[求助]有那位高人知道OD的忽略以下异常是通过什么方式怎么实现的
发表于: 2015-2-5 17:15 6934

[求助]有那位高人知道OD的忽略以下异常是通过什么方式怎么实现的

2015-2-5 17:15
6934
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 28
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
近日在用OllyDBG调试程序时出现异常,停留在堆栈 [0012F358]=77BE14BC (msvcrt.77BE14BC), ASCII "Access violation - no RTTI data!",异常代码是E06D7363,强行Shift+F8/F9后,然后还会继续持续异常,报0eedfade,如此循环。

开始时怀疑是程序内部做了防DEBUG监控处理,用IsDebugPresent插件隐藏调试标识,还是不行,查API参考并没有DEBUG类似的函数调用,程序本身在没有DEBUG的情况下能正常运行,搞什么虾米嘛。

动手上WinDBG,好了微软的东西就是微软的,找到问题还能自己处理,提示如下:

C++ EH exception - code e06d7363 (first chance)

(7a0.78c): Unknown exception - code 0eedfade (first chance)

(7a0.78c): Unknown exception - code 0eedfade (first chance)

……

发现问题了是C++ EH exception这个错误,然后还有个重点first chance。

官方意思就是仅仅表明有条C++环境异常发生,并被调试器首个捕捉到,这是调试程序可以在被调试程序处理该异常前得到通知,例如catch中的回调。

在这种情况下,WinDBG或者VC++得调试器会仅仅打印信息而忽略此项错误,继续工作。

……

到这里真相大白, OllyDBG没有识别这类异常,按常理进行处理,所以就挂在那找不到北了,因为如果从异常那里跟踪下去,很快就会遇到内存访问错误,是跟不下去的。

好了,知道这马事,不是反调试的话那就好办多了,动手处理吧,还是用OllyDBG继续调试吧,用习惯了,打开OD菜单中的“选项”,“调试选项”->“异常”处,选中同时忽略以下异常:e06d7363和0eedfade。

确定后重新加载程序,最后该干啥干啥去。
2015-2-5 17:20
0
雪    币: 719
活跃值: (777)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
3
。。。。。。哥们。。
2015-2-5 17:30
0
雪    币: 28
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
heyhey
2015-2-5 19:53
0
游客
登录 | 注册 方可回帖
返回
//