KiUserExceptionDispatcher

KiUserExceptionDispatcher

我正在写一个类似于 Armadillo 的文件保护器。因此,我想实现某种“名词”来进行反倾销保护。

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

问题是我不知道将什么传递给KiUserExceptionDispatcher,也不确定在确定异常类型为STATUS_BREAKPOINT异常之后如何继续。

我曾尝试搜索Google,但无济于事。我发现的只是KiDispatchException的结果,它卡在rootkits中。

有人可以为我提供此函数的typedef,并告诉我确定确实是STATUS_BREAKPOINT异常后我将继续执行什么操作?修改EIP上下文后,我会叫NtContinue吗?

或者,如果这不是我想的那么简单,我应该坚持 Armadillo 风格吗?调试我自己的过程?

谢谢。

最佳答案

与文档最接近的东西是这篇MSJ文章:
A Crash Course on the Depths of Win32 Structured Exception Handling

它提供了此作为基本原型(prototype)的示例(来自Figure 14):

KiUserExceptionDispatcher( PEXCEPTION_RECORD pExcptRec, CONTEXT * pContext )

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

您是否有理由无法通过AddVectoredExceptionHandler添加其他异常 vector ?

补充阅读:Under the Hood: New Vectored Exception Handling in Windows XP

关于c++ - Hook KiUserExceptionDispatcher-在任何地方都找不到typedef?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20982429/

10-11 18:06