X86 在windows的默认页面错误处理程序执行之后,如何运行代码?

X86 在windows的默认页面错误处理程序执行之后,如何运行代码?,x86,masm,osdev,X86,Masm,Osdev,出于某种原因,我希望在执行windows的页面错误处理程序后运行代码,以确保页面现在位于物理内存中。我使用下面的代码作为新的int 0E处理程序: pushfd // eflags push cs call __Next __Next: add dword ptr [esp], 0x0E // eip push dword ptr [esp + 0x0C] // error co

出于某种原因,我希望在执行windows的页面错误处理程序后运行代码,以确保页面现在位于物理内存中。我使用下面的代码作为新的int 0E处理程序:

    pushfd                      // eflags
    push cs
    call __Next
__Next:
    add dword ptr [esp], 0x0E           // eip
    push dword ptr [esp + 0x0C]         // error code
    jmp OldInt0EHandler
    // After the int 0e has run, EIP returns here.
    // TODO: add code here after the code has done
    add esp, 4
    iretd

但是当我用新的处理器替换处理程序时,我得到了BSOD。如何正确操作?

要做到这一点,您必须禁用Windows内核修补程序保护。否则,出于(明显的)安全原因,它将触发BOSD。

您必须禁用Windows内核补丁保护才能执行此操作。否则,出于(明显的)安全原因,它将触发BOSD。

一旦修改中断处理程序,Windows内核补丁保护将触发BSOD,因此我认为这是不可能的。你到底需要它做什么?只要你修改中断处理程序,Windows内核补丁保护就会触发BSOD,所以我认为这是不可能的。你到底需要这个做什么?