为了练习,我试图获取某个内存地址指向的地址。我有一个工具可以显示我必须得到的结果。就我而言,它是:
"clientApp.exe"+0x11F9B08 -> 0E4C5F90
所以我假设这基本上意味着:("The base address of the .exe" + 0x11F9B08)
并且指向地址0x0E4C5F90
。
我已经有了clientApp.exe 的基地址。我用EnumProcessModules
和GetModuleFileNameEx
为此。
小片段
if ( GetModuleFileNameEx( hProcess, hMods[i], szModName, sizeof(szModName) / sizeof(TCHAR)))
{
if(gameName.compare(szModName))
{
dwClientBase = (DWORD)hMods[i]; //base address
break;
}
}
然后稍后我试图获取指向的地址。但以下给了我一个完全不同的结果:
DWORD result = (DWORD)(dwClientBase + 0x11F9B08);
这给了我:23042824
。我正在寻找:0x0E4C5F90
。我想我已经接近了,但不确定接下来我可以尝试什么。
任何人都知道我应该怎么做才能获得与工具给我的结果相同的结果?