首页
社区
课程
招聘
[求助]关于异常处理函数的一些疑问
发表于: 2006-5-22 19:35 3676

[求助]关于异常处理函数的一些疑问

2006-5-22 19:35
3676
当一个程序运行时出现异常,应该是由OS来调用这个程序指定的处理函数来处理,对吗?
如果是这样的话,看了前面那篇分析断点原理的文章后,比如下个内存访问断点,是由OD将这快内存改为不可访问,从而产生一个异常,而这个异常调用的显然不是被调试程序自身所指定的异常处理函数,而应该是OD指定的吧。这是怎摸实现的呢?比如SEH吧,他的异常处理函数的地址可以通过fs:[0]所指向的EXCEPTION_REGISTRATION结构来获得,如果他被OD调试的话,是不是OD就会将fs:[0]修改使其指向自己的EXCEPTION_REGISTRATION结构,从而修改了异常处理函数的地址。
熟悉这方面知识的高手简单介绍一下吧,我再去查资料

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
当程序产生异常时,系统优先检查该程序有没有被调试,如果在调试状态中,这个异常系统会先发给调试器处理。如果调试器不处理,才会交给程序指定的处理函数去处理。所以调试器会比程序先得到这个异常处理权。这个过程是由系统自动执行的,OD并不会去修改fs:[0]。
2006-5-22 19:52
0
游客
登录 | 注册 方可回帖
返回
//