【问题标题】:Is it possible to be aware of exception occurrence by monitoring IDT?是否可以通过监控 IDT 来了解异常的发生?
【发布时间】:2012-08-21 20:53:23
【问题描述】:

是否可以通过监控 IDT(中断描述符表)来了解异常发生(在用户模式和内核模式下)?

【问题讨论】:

    标签: windows exception exception-handling kernel usermode


    【解决方案1】:

    是的,这是可能的。但是,实际实现只能在内核模式中完成。

    监控硬件异常需要一个挂钩到IDT中的中断。这将需要对 IDT 的写入权限。在Windows 中,包括任何受保护模式的操作系统,必须在内核模式 中使用设备驱动程序 完成。

    用户模式中,必须在设备驱动程序的帮助下完成,其中报告用户的异常模式 应用程序。因此可以在用户模式中间接监控异常。这意味着 用户模式 应用程序并不是真正监控异常的应用程序。

    【讨论】:

    • 你说得对,Jay,它必须通过内核权限来完成。那么我们可以知道用户模式应用程序中的任何异常发生吗?或者这个过程只是通知我们特定应用程序中的异常或中断?
    • 异常是全局的(任何代码、内核和用户模式)。软件生成的异常可能会也可能不会触发异常中断。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 2013-11-11
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多