2010-10-27 76 views
1

任何人都可以告诉我如何获得使用WinAPI函数内存分配的某些进程内存区域?我想知道对于每一个区域的起始地址,大小和其他一些东西一样,保护型等获取正在运行的进程分配的内存区域

我找不到任何WinAPI的函数来做到这一点;-(

谁能帮我?

回答

6

有代码,以蛮力攻击使用VirtualQueryExhere

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); 
} 
+1

您不必使用'GetSystemInfo'或者您也可以继续循环,直至'VirtualQueryEx'“失败” – valdo 2010-10-27 16:35:03

+0

@valdo - 感谢。这个 – 2010-10-27 16:35:23

相关问题