【发布时间】:2011-05-01 10:08:24
【问题描述】:
谁能告诉我如何使用 WinAPI 函数为某些进程分配内存区域?我想知道每个区域的起始地址、大小和其他一些东西,比如保护类型等。
我找不到任何 WinAPI 函数来执行此操作;-(
谁能帮帮我?
【问题讨论】:
标签: windows winapi memory process
谁能告诉我如何使用 WinAPI 函数为某些进程分配内存区域?我想知道每个区域的起始地址、大小和其他一些东西,比如保护类型等。
我找不到任何 WinAPI 函数来执行此操作;-(
谁能帮帮我?
【问题讨论】:
标签: windows winapi memory process
有代码可以使用 VirtualQueryEx here 暴力破解:
MEMORY_BASIC_INFORMATION mbi;
/* Get maximum address range from system info */
GetSystemInfo(&si);
/* walk process addresses */
lpMem = 0;
while (lpMem < si.lpMaximumApplicationAddress) {
VirtualQueryEx(...)
/* increment lpMem to next region of memory */
lpMem = (LPVOID)((DWORD)lpList->mbi.BaseAddress +
(DWORD)lpList->mbi.RegionSize);
}
【讨论】:
GetSystemInfo。或者,您可以继续循环直到VirtualQueryEx“失败”。