VC++ 获取64位游戏进程模块基址
1、首先我们需要几行简单的代码获取游戏进程权限
2、利用EnumerateLoadedModules64()函数来枚举指定进程加载的所有module,
EnumerateLoadedModules64(hProcess,(PENUMLOADED_MODULES_CALLBACK64)MyEnumerateLoadedModulesProc64,(PVOID)pVer); 第一个参数是进程句柄,第二参数是回调函数,第三个参数是回调使用轿始泥的上下文,pvoid类型的.第二个参数要强制转换为(PENUMLOADED_MODULES_CALLBACK64),不然会报错.
3、编写回调函数特海 MyEnumerateLoadedModulesProc64(),代码如下:
BOOL CALLBACK MyEnumerateLoadedModulesProc64(
PTSTR ModuleName,
DWORD64 ModuleBase,
ULONG ModuleSize,
PVOID UserContext)
{
// 加入你的判断代码 得到游戏进程基址
//例如 if(ModuleName==你的游棍霜戏进程名) { Base_游戏基址= ModuleBase //return False};
return True;
}
这里的返回值为真,将会一直调用这个函数,直到枚举完所有模块. 返回值为假将会停止调用.无需添加循环判断,非常好用. 注意:Base_游戏基址要使用全局变量.
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:68
阅读量:40
阅读量:94
阅读量:24
阅读量:34