Hooking KiUserExceptionDispatcher- 在任何地方都找不到typedef



我正在编写一个类似于犰狳的文件保护器。 所以,我想实施某种"纳米虫"来防止倾倒。

但是,我没有打开自己的流程,而是决定挂钩KiUserExceptionDispatcher

问题是我不知道传递给KiUserExceptionDispatcher的内容,也不确定在确定异常类型是STATUS_BREAKPOINT异常后如何继续。

我试过搜索谷歌,但无济于事。 我找到的只是 KiDispatchException 的结果,它被钩在 rootkit 中。

有人可以给我提供这个函数的 typedef,并告诉我在确定它确实是一个STATUS_BREAKPOINT例外后我会怎么做才能继续?修改弹性公网IP上下文后会调用NtContinue吗?

或者如果这不像我想的那么简单,我应该坚持犰狳风格吗?调试我自己的进程?

谢谢。

最接近文档的是这篇 MSJ 文章:关于 Win32 结构化异常处理深度的速成课程

它提供了这个作为基本原型的示例(来自图 14):

KiUserExceptionDispatcher( PEXCEPTION_RECORD pExcptRec, CONTEXT * pContext )

在实践中,我还看到了PEXCEPTION_RECORD位于第三个参数而不是第一个参数中的实例(至少从 WinDbg 的角度来看)。x86 和 x64 实现之间也存在潜在差异。

是否有理由不能通过 AddVectoredExceptionHandler 添加额外的异常向量?

延伸阅读:幕后:Windows XP 中的新向量异常处理

最新更新