Ollydbg 如何获取内存映射(alt+m)?

逆向工程 视窗 记忆 倾倒
2021-06-10 01:33:52

我一直在寻找任何 Windows 函数来查看或转储内存,或者手动执行此操作的过程。我在网上的任何地方都找不到这方面的信息。

我如何获得进程内存的转储,就像 Olly 的内存窗口中的内存一样?

编辑澄清:

我希望能够检索地址的基页地址。内存映射是我与之最好的关系,因为它提供了页面信息,如大小、起始地址、权限等,VirtualQueryEx()解决了这个问题。

我最终遍历页面,直到找到目标地址所在的页面。

我倾向于询问我认为的解决方案,而不是列出我的问题并接受建议。

谢谢大家的帮助。

// Iterate through pages
for(base = NULL; 
    WINDOWS::VirtualQuery(base, info, sizeof(*info)) == sizeof(*info); 
    base += info->RegionSize) {

    if(p > base && p < base + info->RegionSize) {
        found = true;
        break;
    }
}
2个回答

VirtualQueryEx()可用于扫描进程的用户模式地址空间以枚举每个内存分配,并且可以解析内存中图像的 PE 标头以确定哪些内存块与哪些 PE 部分相关联。DLL 的 PE 标头还包含 DLL 的名称。

要将内存转储到文件,请参阅DbgHelp MiniDumpWriteDump函数。您将获得内存快照作为转储文件 (.DMP),然后您可以使用各种工具或自己使用DbgEng 调试引擎进行分析