在Windows(最好是XP)上,通常可以在写入特定地址(在其虚拟地址空间中)时暂停进程吗?
由于加载的DLL执行写入操作而不是代码本身的(PE)图像中的代码,因此问题变得复杂。
答案 0 :(得分:4)
您可以使用VirtualProtect
和PAGE_GUARD
或其他选项保护包含感兴趣地址的网页,并在地址写入时触发异常。这种异常可以由未处理的异常过滤器处理(取决于,应用程序可能正在处理它),或者由进程外调试器应用程序处理,例如众所周知的调试器或通过API的自定义应用程序调试过程。
调试器应用程序可以在必要时挂起进程,或者使用带有快照的minidump。有关详细信息,请参阅MSDN EXCEPTION_DEBUG_EVENT
:
在正在调试的进程中发生异常时生成。 可能的例外包括尝试访问无法访问的内存, 执行断点指令,试图除以零,或 结构化异常处理中提到的任何其他例外。
DEBUG_EVENT结构包含EXCEPTION_DEBUG_INFO结构。 此结构描述了导致调试的异常 事件