阅读:1627回复:5
如何在NT下捕获异常?
比如我想捕获RING3下“int 30”异常。在win 9x 下可以用Hook_PM_Fault来HOOK异常处理。但是在2k/xp下呢?就象SOFTICE FOR NT 那样?
|
|
沙发#
发布于:2002-07-23 19:28
比如我想捕获RING3下“int 30”异常。在win 9x 下可以用Hook_PM_Fault来HOOK异常处理。但是在2k/xp下呢?就象SOFTICE FOR NT 那样? 唔,好久都没人理呀。 see 《Undocumented windowsNT》 |
|
板凳#
发布于:2002-07-24 09:31
是不是“Hooking Software Interrupts”这一章?
但是我的本意并不是安装中断30h的处理程序,而是想捕获异常而已。例如一些页面异常等等…… |
|
地板#
发布于:2002-07-24 21:27
是不是“Hooking Software Interrupts”这一章? 钩挂0xE即可捕获页面异常。 |
|
地下室#
发布于:2002-07-25 09:31
昨天看了《NTNativeAPI》,原来所有的异常最终会导致内核函数KiDispatchException被调用,由它完成异常处理的派发,用户MODE的异常由KiUserExceptionDispatcher处理,所以……
但是我在XP中没有找到KiDispatchException,只找到KiDispatchInterrupt!这两者有什么关系吗? |
|
5楼#
发布于:2002-07-26 12:34
昨天看了《NTNativeAPI》,原来所有的异常最终会导致内核函数KiDispatchException被调用,由它完成异常处理的派发,用户MODE的异常由KiUserExceptionDispatcher处理,所以…… 参看,Inside windows 2000 3rd,如果我没有理解错的话: KiDispatchInterrupt负责派发硬件中断 KeDispatchException负责派发硬件和软件异常 其他相关派发还包括: KiDispatchService 和虚拟内存管理相关的异常专门有自己的派发函数。 |
|