上下文结构不包含 Eip?C++



我试图修改线程和上下文结构不包含Eip。

HANDLE hThread;
CONTEXT ctx;
ctx.ContextFlags = CONTEXT_ALL;
DWORD processId = GetCurrentProcessId();
DWORD mainThreadId = GetMainThreadId(processId);
hThread = OpenThread((THREAD_GET_CONTEXT | THREAD_SET_CONTEXT | THREAD_SUSPEND_RESUME), FALSE, mainThreadId);
if (hThread)
{
    if (GetThreadContext(hThread, &ctx))
    {
        ???ctx.Eip??
    }
}

我不明白为什么,尽管它应该。谢谢!

CONTEXT结构是特定于处理器体系结构的。当编译x86目标(定义的预处理器符号_M_IX86)时,它包含一个Eip成员。对于x64目标(预处理器符号_M_AMD64定义),指令指针存储在Rip成员中。

所有支持的处理器架构的结构定义在Windows SDK的WinNT.h头文件中定义。

最新更新