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。
阅读量:50
阅读量:40
阅读量:72
阅读量:88
阅读量:84