2010-10-27 113 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

相關問題