写入 ecx 寄存器导致在 Windows 7 中"Access violation"

Writing to ecx register causes "Access violation" in Windows 7

本文关键字:Access violation Windows ecx 寄存器 写入      更新时间:2023-10-16

您好,非常感谢您的帮助!

在我的c++代码中,我有一些嵌入式汇编代码,并在行[mov ecx,1AF858h]一个错误消息不断弹出说"访问违规"。它在Windows XP上运行良好,但不幸的是不能在Windows 7上运行。

我不明白是什么原因导致了这个问题,我想知道我需要做些什么来解决它。

敬礼,David

你需要使用VirtualProtect/VirtualProtectEx来标记你的字节数组为可执行的,或者使用VirtualAlloc使用正确的标志来分配它(可能是在编写代码时PAGE_READWRITE,然后PAGE_EXECUTE_READ)。注意,这可能需要在页面的基础上完成。