如果在特定地址写入,则挂起进程

Windows(最好是XP)上,通常可以在进程写入特定地址(在虚拟地址空间)时暂停进程?

由于加载的DLL执行写操作而不是在进程本身的(PE)映像中编码,所以问题变得复杂。

您可以使用VirtualProtectPAGE_GUARD或其他选项保护包含感兴趣地址的页面,并在写入地址时发生异常。 这种异常可以通过未处理的异常过滤器(取决于应用程序本身是否可以处理)或者由进程外的调试器应用程序来处理,比如众所周知的调试器或通过API定制应用程序的调试过程。

调试器应用程序可以在必要时挂起进程,或者使用快照进行小型转储。 有关详细信息,请参阅MSDN EXCEPTION_DEBUG_EVENT

在正在调试的进程中发生异常时生成。 可能的例外包括尝试访问不可访问的内存,执行断点指令,尝试除以零,或者在结构化异常处理中记录的任何其他异常。

DEBUG_EVENT结构包含一个EXCEPTION_DEBUG_INFO结构。 此结构描述导致调试事件的异常。