能力值:
( LV8,RANK:130 )
|
-
-
2 楼
假定你想访问地址0x1234 5678。因为内存分页和硬件有关,你在安装操作系统的时候,它会据此安装对应的程序。
WinCE等小玩具: 2 KB
x86: 4 KB
AMD64/IA64: 8KB
假定你在x86上,则所在地址的页面起始地址是0x1234 5000,x64的机器则是0x1234 4000。
SIZE_T VirtualQueryEx(
HANDLE hProcess,
LPCVOID lpAddress, // == 0x12345000
PMEMORY_BASIC_INFORMATION lpBuffer,
SIZE_T dwLength
);
typedef struct _MEMORY_BASIC_INFORMATION {
PVOID BaseAddress;
PVOID AllocationBase;
DWORD AllocationProtect;
SIZE_T RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION;
如果VirtualQueryEx的lpvAddress实在一个EXE或DLL中时,AllocationBase就是此EXE或DLL的基地址(ImageBase)。
|
|
|