我试图在 windows7 64 位上获取另一个进程的 EBP 寄存器的值。
为此,我正在使用 GetThreadContext,如下所示:
static CONTEXT threadContext;
memset(&threadContext, 0, sizeof(CONTEXT));
threadContext.ContextFlags = CONTEXT_FULL;
bool contextOk = GetThreadContext(threadHandle, &threadContext);
EIP 值似乎没问题,但 EBP = 0。我也尝试使用 WOW64_GetThreadContext 但它没有帮助...... GetLastError() 返回 0 所以应该没问题。我确实使用 SuspendThread 暂停了该线程,并且每次对线程进行采样时都不会发生这种情况。
什么可能导致这种情况?