上下文结构不包含 Eip?C++
CONTEXT struct doesn't contain 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头文件中定义。