windows – VMMap如何知道给定的内存区域是Thread Stack,具体来说呢?

我一直在使用Mark Russinovich的VMMap为我正在分析的过程绘制虚拟内存.使用VirtualQueryEx,我可以走外部进程的空间,获取进程地址空间内存区域的信息.当然,这些区域与VMMap匹配,但VirtualQueryEx只告诉我内存是否已提交/保留/免费以及是否为私有/共享/映像.

我找不到任何其他记录的方法查询进程虚拟内存. VMMap似乎知道一种查询内存的方法,以便了解它是“私有数据”还是“线程堆栈”. VirtualQueryEx将这两个标记为MEM_PRIVATE.那么VMMap如何做出这种区分呢?

是否有其他API函数可以用来辨别这些细节?

Mark Russinovich从不分享他的秘密,他有很多.我想可以从未记录的线程环境块找到它,虽然我没有看到很好的候选人.页面属性可能更好.它使用MEM_TOP_DOWN,只有堆栈具有(检查VirtualAlloc).与Guard页面的组合,一个使StackOverflowException跳闸的页面将使它完全明确.无论如何,这就是我要这样做的方式.

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...