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

最佳答案

这是一个可以在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
}

10-06 01:03