【发布时间】:2015-09-20 16:50:19
【问题描述】:
我想知道 Windows 是否公开了一个 API,允许用户模式进程分配一块地址空间,然后在该空间的特定页面上安装“陷阱”,这样如果这些页面被访问(读/写)通过进程,那么 Windows 将调用程序中的处理程序,例如通过调用回调函数或抛出程序可以处理的异常?我认为 Windows 应该可以通过设置页表来触发相关页面上的页面错误来实现这一点。然后,如果内存被访问,这将触发 CPU 的页面错误,页面错误处理程序可以将其反映回程序。但我不知道 Windows 是否真的提供了这个功能。
顺便问一下,Linux 支持这个功能吗?
【问题讨论】:
-
使用 `VirtualProtect' 撤销对页面的访问,然后安装向量异常处理程序。