【问题标题】:How do I run my code after the default page fault handler of windows has done execution?windows的默认页面错误处理程序执行完毕后,如何运行我的代码?
【发布时间】:2013-08-05 08:12:46
【问题描述】:

出于某种原因,我想在 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内核补丁保护就会触发BSOD,所以我认为这是不可能的。你到底需要这个做什么?

标签: x86 masm osdev


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-11-27
    • 1970-01-01
    • 2017-01-09
    • 2015-07-19
    • 2013-06-09
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多