小编Mag*_*arf的帖子

Windows 8:对通过WOW64运行的32位应用程序进行堆分析

首先,这不是关于如何进行堆分析的一般性问题,因为我在早期版本的Windows中非常熟悉.

然而,我想知道的是,如果有人设法对64位Windows 8上运行WOW64层的32位应用程序执行堆分析,那么Windows 8是关键词​​吗?

运行Windows 7和Windows调试工具我只是使用gflags应用用户堆栈和堆标记,然后使用x86版本的WinDbg附加到进程,只获得32位上下文(因为我通常不是对WOW64层本身感兴趣).堆信息显示完美.

在Windows 8上,执行相同的过程,添加gflags并启动我的进程,启动后的内存使用量从40增加到140MB,表明gflags已经启动.

但是,无论我如何尝试,WinDbg或umdh都无法获取任何堆信息.通过运行x64版本并将.effmach切换到32位上下文时,使用x86版本的旧方法或文档中描述的方式都不是通过WOW64运行的.

此外,我已经尝试使用适用于Windows的Windows 7和Windows 8版本的调试工具,因此在Windows 7上提供良好结果的相同工具在Windows 8上的行为不同.

我目前的猜测是,Windows 8管理堆的方式的变化(我已经看过几篇关于互联网的文章)可能还没有完全更新/反映在Windows的调试工具中.我假设(我自己的使用场景只涉及WOW64上下文中的32位进程,所以我不确定)对于没有WOW64层的应用程序的堆分析按预期工作,但WOW64当前是阻塞程序这里.

我很想知道我做错了什么,或者当前工具是否存在问题.我目前已经退回到在VM中运行Windows 7来进行内存分析.

那么,在Windows 8中WOW64下对win32应用程序进行堆分析是否有任何成功,如果是这样的话?

windows heap windbg wow64 windows-8

8
推荐指数
1
解决办法
1035
查看次数

标签 统计

heap ×1

windbg ×1

windows ×1

windows-8 ×1

wow64 ×1