leo_cyl
驱动牛犊
驱动牛犊
  • 注册日期2001-08-20
  • 最后登录2009-11-02
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望13点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1627回复:5

如何在NT下捕获异常?

楼主#
更多 发布于:2002-07-22 14:53
比如我想捕获RING3下“int 30”异常。在win 9x 下可以用Hook_PM_Fault来HOOK异常处理。但是在2k/xp下呢?就象SOFTICE FOR NT 那样?
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-23 19:28
比如我想捕获RING3下“int 30”异常。在win 9x 下可以用Hook_PM_Fault来HOOK异常处理。但是在2k/xp下呢?就象SOFTICE FOR NT 那样?


唔,好久都没人理呀。

see 《Undocumented windowsNT》
leo_cyl
驱动牛犊
驱动牛犊
  • 注册日期2001-08-20
  • 最后登录2009-11-02
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望13点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-24 09:31
是不是“Hooking Software Interrupts”这一章?
但是我的本意并不是安装中断30h的处理程序,而是想捕获异常而已。例如一些页面异常等等……
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-24 21:27
是不是“Hooking Software Interrupts”这一章?
但是我的本意并不是安装中断30h的处理程序,而是想捕获异常而已。例如一些页面异常等等……


钩挂0xE即可捕获页面异常。
leo_cyl
驱动牛犊
驱动牛犊
  • 注册日期2001-08-20
  • 最后登录2009-11-02
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望13点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-25 09:31
昨天看了《NTNativeAPI》,原来所有的异常最终会导致内核函数KiDispatchException被调用,由它完成异常处理的派发,用户MODE的异常由KiUserExceptionDispatcher处理,所以……
但是我在XP中没有找到KiDispatchException,只找到KiDispatchInterrupt!这两者有什么关系吗?
soycola
驱动牛犊
驱动牛犊
  • 注册日期2001-09-19
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-26 12:34
昨天看了《NTNativeAPI》,原来所有的异常最终会导致内核函数KiDispatchException被调用,由它完成异常处理的派发,用户MODE的异常由KiUserExceptionDispatcher处理,所以……
但是我在XP中没有找到KiDispatchException,只找到KiDispatchInterrupt!这两者有什么关系吗?


参看,Inside windows 2000 3rd,如果我没有理解错的话:
KiDispatchInterrupt负责派发硬件中断
KeDispatchException负责派发硬件和软件异常
其他相关派发还包括:
KiDispatchService
和虚拟内存管理相关的异常专门有自己的派发函数。
游客

返回顶部