前两篇文章分别讲了JNI和CE查找游戏基址,
这一篇就到了真正的主题。
注意:
开发这个项目,需要将项目的jdk修改为1.6版本,高于1.6会有问题。
右键你的项目→Build Path→Configure Build Path→Libraried→选中JRE→点击右边的Edit按钮→选择1.6的JDK版本,
当然你电脑上必须有1.6版本的JDK。
那么用java编写游戏修改器,需要以下几步:
获取进程令牌
GiveProcessPrivilege give = new GiveProcessPrivilege(); give.give(Kernel32_DLL.INSTANCE.GetCurrentProcess(), LookupPrivilegeValue.SeDebugPrivilege);
- 创建GUI界面
获取游戏窗口信息
String windowName = "Plants vs. Zombies GOTY "; HWND hwnd = User32.INSTANCE.FindWindow(null,windowName);
获取游戏PID
IntByReference dwPID = new IntByReference(); //dwPID 进程标识 int pid = User32.INSTANCE.GetWindowThreadProcessId(hwnd,dwPID);
通过OpenProcess打开游戏进程
Kernel32.INSTANCE.OpenProcess(OpenProcess.PROCESS_ALL_ACCESS, false, dwPID.getValue());
读取游戏内存信息
Kernel32_DLL.INSTANCE.VirtualQueryEx(hProcess, istartAddress, memoryInfo, size);
读取或者修改内存信息
//读取内存信息 Kernel32.INSTANCE.ReadProcessMemory(handle, firstAddress, firstBuffer, 4, intByReference) //修改内存信息 Kernel32.INSTANCE.WriteProcessMemory(handle, sunAddress, update, 4, intByReference)
释放资源
//释放内存 ReferenceFree.free(buffer); //释放资源 Kernel32.INSTANCE.CloseHandle(handle);
演示:
2 条评论
《枭爷,叶小姐又来求婚了》短片剧高清在线免费观看:https://www.jgz518.com/xingkong/14115.html
《无可救药爱上你2002》爱情片高清在线免费观看:https://www.jgz518.com/xingkong/40041.html