c++ - 如何使用 NtQueryInformationThread 查找堆栈的基地址?
问题描述
我试图通过扫描内存来搜索存储在另一个进程中的特定整数值。我枚举了它的线程,我想找到线程的基地址,这样我就可以开始逐字节搜索整数值。我不确定这种策略的可行性,因为我在某处读到这可能不是“真正的”堆栈地址。
我做了一些挖掘,在 msdn 的未记录部分找到了一个(禁止的)NtQueryInformationThread。我知道它不稳定且过时,但在我收集的少量信息中,它似乎是唯一“简单”的方式。
NTSTATUS queryThread = NtQueryInformationThread(hThread, (THREADINFOCLASS)ThreadQuerySetWin32StartAddress, &startAddress, sizeof(startAddress), sizeRequested);
我的问题是,当我指定 时ThreadQuerySetWin32StartAddress
,我总是收到以下警告:
ThreadQuerySetWin32StartAddress
是未定义的。
在另一个论坛中,我看到一个用户将其定义为“9”。
解决方案
推荐阅读
- gitlab - Gitlab - 如何根据作业管道添加徽章
- java - 为什么在 LiveData 列表中更改值时不调用 onChanged?
- javascript - 使用类上的js而不是输入id加载页面时自动聚焦在字段上
- c# - Web Api 返回空响应
- logging - 提升日志记录:如何在过滤器中应用 use_tss_with_cache?
- openstreetmap - 立交桥:巴士路线的巴士站
- sql - Teradata 中的行大小限制
- vba - 无法使用 vba 从 selenium 的下拉列表中进行选择
- ruby - Ruby中公共类方法的私有类方法
- html - 如何在 Windows 10 中更改 Chrome 应用程序标题栏颜色