2

我需要从 x64 平台上的 TIB 获取最大和最小堆栈(我知道我需要用 GS 寄存器替换 FS 寄存器。)在 x86 平台上我可以使用这个表并找到正确的偏移量
你知道在哪里吗我可以找到 x64 平台的表吗?

4

1 回答 1

4

这是一个适用于 x86 和 x64 的程序。

#include <windows.h>
#include <stdio.h>

void main()
{
  PNT_TIB ptib = (PNT_TIB)NtCurrentTeb();
#ifdef _AMD64_
  printf("Stack base: %08I64X, limit: %08I64X\n",
    ptib->StackBase, ptib->StackLimit);
#else
  printf("Stack base: %08X, limit: %08X\n",
    ptib->StackBase, ptib->StackLimit);
#endif
}
于 2012-07-19T17:54:27.407 回答