我正试图在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暂停这个线程,并且每次我对线程进行采样都不会发生。
是什么导致这种情况?
答案 0 :(得分:2)
一个可能的原因是在检查时寄存器的值确实为零。它是一个通用寄存器,因此程序可以将其设置为它想要的任何值。