xdbg 中映射的和私有的内存段有什么区别?什么是保留段?

逆向工程 视窗 调试 记忆
2021-06-22 20:09:26

所以在内存映射中的 xdbg 中,我可以看到一些段被映射,一些是私有的,起初我认为可能映射意味着它在磁盘上有一个相应的文件及其映射版本,但是有这么多映射段没有对应的文件,其中一些是保留的

所以我有两个问题:

  1. 映射段和私有段有什么区别?

  2. 这些(保留的)部分是什么?保留是什么意思?

    在此处输入图片说明

1个回答
  1. 私有标志指示特定范围的内存不与任何其他进程共享

  2. 保留部分表示虚拟内存区域已保留,但尚未提交。这意味着虚拟内存区域不会映射到物理内存,但任何其他内存分配调用都不会占用该空间,直到它被释放。您可能还注意到调试器没有对保留的内存区域显示任何保护,这是因为内存需要提交才能使用。要提交内存,您可以VirtualAlloc再次调用,这次使用 MEM_COMMIT 标志,现在您可以访问提交的内存,然后它将被分配。