能力值:
( 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。
确定后重新加载程序,最后该干啥干啥去。
|
能力值:
( LV8,RANK:120 )
|
-
-
3 楼
。。。。。。哥们。。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
heyhey
|
|
|