C ++获取分配部分的基地址

C++ get the base address of a allocated section

因为我之前没说清楚所以我会重写我的问题。

我需要获取分配给VirtualAllocEx()的一段内存的绝对基地址。

比如我分配了0x20000字节,得到地址0x5000000。

我需要一种使用值 0x5015000 获取地址 0x5000000 的方法。

VirtualQuery() returns 值 0x5015000 所在的页面地址,而不是已分配内存部分的基地址。

所以我需要一种不同的方法来找到任何已分配内存部分的基地址。

免责声明:此处没有任何 WinAPI 经验。

VirtualQuery() returns the page address that the value 0x5015000 resides in and not the base address of the allocated section of memory.

据我了解the docs, VirtualQuery() returns a structure包含多条信息,包括...

BaseAddress

A pointer to the base address of the region of pages.

AllocationBase

A pointer to the base address of a range of pages allocated by the VirtualAlloc function. The page pointed to by the BaseAddress member is contained within this allocation range.

难道你只勾选了BaseAddress,没有勾选AllocationBase?因为后者听起来和你要找的完全一样......