如何在 C++ 内部获取进程的基地址?

How to get the base address of a process in C++ Internally?

我知道我想要挂钩的函数位于 "ac_client.exe" + 63fe。如何找出运行可执行文件的基址是什么?

使用GetModuleHandler。传入 NULL,像这样:

GetModuleHandler(NULL);

它将return当前运行模块(.exe)的句柄,这实际上是它的基址。

如果您想知道不同(已加载)模块的基地址,例如 DLL,则只需传递其名称即可。

最快的解决方案,特别是对于可能挂钩 GetModuleHandle 的游戏破解。

const auto peb = reinterpret_cast<PPEB>(__readfsdword(0x30));
const auto base = peb->Reserved3[1];