标签: c++ winapi memory virtualalloc
因为在我改写问题之前我不清楚。
我需要获取用VirtualAllocEx()分配的内存部分的绝对基址。
VirtualAllocEx()
例如,如果我分配0x20000字节并获取地址0x5000000。
我需要一种使用值0x5015000获取地址0x5000000的方法。
VirtualQuery()返回值0x5015000所在的页面地址,而不是分配的内存段的基址。
所以我需要一种不同的方法来查找任何已分配内存段的基址。
答案 0 :(得分:3)
免责声明:无论如何都没有WinAPI体验。
据我了解the docs,VirtualQuery()会返回包含多条信息的structure,包括......
VirtualQuery()
<强> BaseAddress 强> 指向页面区域基址的指针。 <强> AllocationBase 强> 指向VirtualAlloc函数分配的页面范围的基址的指针。 BaseAddress 成员指向的页面包含在此分配范围内。
<强> BaseAddress 强>
指向页面区域基址的指针。
<强> AllocationBase 强>
指向VirtualAlloc函数分配的页面范围的基址的指针。 BaseAddress 成员指向的页面包含在此分配范围内。
VirtualAlloc
是否仅检查了BaseAddress而非AllocationBase?因为后者听起来和你想要的完全一样......
BaseAddress
AllocationBase