2

Windows764ビットで別のプロセスの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でこのスレッドを一時停止しますが、スレッドをサンプリングするたびに発生するわけではありません。

何が原因でしょうか?

4

1 に答える 1

2

One possible cause is that the register's value really is zero at the time you inspect it. It's a general-purpose register, so the program can set it to whatever value it wants.

于 2011-09-15T15:50:49.103 に答える