关于进程的内存地址问题的土办法
资料上说 ReadProcessMemory 函数执行前会测试进程虚拟内存的连续性,
也就是说准备读取的这段内存必然不是断开的,必然是已经提交到物理内存的,
那么可不可以使用一个土办法 ?
也就是2(批)次调用 ReadProcessMemory 函数,
第1(批)次调用 ReadProcessMemory 函数时,
按照 PE 文件内存装载节粒度的整数倍,1倍1倍的测试 ReadProcessMemory 返回成功的有效性,
记下 ReadProcessMemory 函数在返回失败之前的节粒度的倍数,
由这个倍数值计算进程总可读写内存的大小,
从而,
第2次调用 ReadProcessMemory 函数时,
进程的总可读写内存大小的值,就是进程的虚拟内存结束地址 ?
另外牵涉到了一个更复杂的问题,
就是"任务管理器->进程(标签页)->内存使用"的值是不是等于进程装载进内存后,
从虚拟内存的基地址到可读写内存的结束地址的总合大小的值呢?
任务管理器->进程(标签页)->内存使用 ?= 虚拟内存的基地址到可读写内存的结束地址
也就是这两个值是不是必然相等呢 ?
还是必然不相等呢 ?
现在物理内存地址也没有必要去管了,
也就是说"任务管理器->进程(标签页)->内存使用"的值是不是必然是已经提交到物理内存的值呢 ?
还是"任务管理器->进程(标签页)->内存使用"的值可以包含未提交到物理内存的值呢?
[解决办法]
帮顶下!