首页 > 解决方案 > 如何使用 NtQueryInformationThread 查找堆栈的基地址?

问题描述

我试图通过扫描内存来搜索存储在另一个进程中的特定整数值。我枚举了它的线程,我想找到线程的基地址,这样我就可以开始逐字节搜索整数值。我不确定这种策略的可行性,因为我在某处读到这可能不是“真正的”堆栈地址。

我做了一些挖掘,在 msdn 的未记录部分找到了一个(禁止的)NtQueryInformationThread。我知道它不稳定且过时,但在我收集的少量信息中,它似乎是唯一“简单”的方式。

NTSTATUS queryThread = NtQueryInformationThread(hThread, (THREADINFOCLASS)ThreadQuerySetWin32StartAddress, &startAddress, sizeof(startAddress), sizeRequested);

我的问题是,当我指定 时ThreadQuerySetWin32StartAddress,我总是收到以下警告:

ThreadQuerySetWin32StartAddress是未定义的。

在另一个论坛中,我看到一个用户将其定义为“9”。

标签: c++winapi

解决方案


推荐阅读