C语言C++学习交流群496926338
当然是先输入头文件。 我们不会详细介绍 stdio.h。 每个人都知道。 现在我们要输入书中没有的第二个。
#包括
这个windows.h非常重要。 如果缺少的话,很多后续的函数将无法调用。
好了,接下来就是主要功能了。 这个不用解释大家都明白。 那么我们当然要解释一下插件了。
Prinf函数也是书本上常用的知识。 指令像这样输入到屏幕上。
在这里,就拿前天我在论坛上推荐的游戏来说吧。 原因是我玩了很久都打不过,气死我了。
所以,我的指令是这样的,代码如下:
C语言C++学习交流群496926338
C语言C++学习交流群496926338
我认为我有必要解释一下句柄(HWND)和PID是什么。 我们可以把它们理解为我们现实中的学生证、身份证。 两者都可以证明您的身份。 功能是一样的,只是名称不同,而且你的身份证和学生证是唯一的,也就是说没有人的身份证或学生证和你的一模一样。 计算机中的程序也是如此。 每个程序都会有它的身份证明硬件设备,也是唯一的东西,为什么我们需要这两个东西呢? 想一想,我们要修改的是《双星物语2》这个游戏游戏评测,而不是《暗黑破坏神3》。当然c语言制作游戏,我们必须通过这两件事来确认我们要修改的程序。
好吧,我们继续。 看代码就知道修改游戏的代码应该写在这里。
C语言C++学习交流群496926338
C语言C++学习交流群496926338
C语言C++学习交流群496926338
继续写代码。 获取到PID之后,我们就要打开进程,问一下为什么要打开进程。 这就像抢劫银行一样。 如果你不先打开银行的门,你怎么能进去抢劫(银行金库没有窗户,不要钻空子)。 开启流程,使用OpenProcess函数,第一个参数表示获得完全权限(即抢劫银行时,可以抢劫钞票和金条。没有权限,就相当于银行工作人员宁死不屈,不能抢劫任何东西。部分权限意味着只能抢劫钞票(class),第二个参数是之前提到的Pid。 如果成功,hProcess不会等于0(相当于打开银行门),如果不成功,就会等于0(抢劫银行会失败)
C语言C++学习交流群496926338
C语言C++学习交流群496926338
或者百度作弊引擎c语言制作游戏,我的是5.6.1版本
C语言C++学习交流群496926338
C语言C++学习交流群496926338
C语言C++学习交流群496926338
C语言C++学习交流群496926338
C语言C++学习交流群496926338
C语言C++学习交流群496926338
C语言C++学习交流群496926338
C语言C++学习交流群496926338
C语言C++学习交流群496926338
C语言C++学习交流群496926338
C语言C++学习交流群496926338
最后贴出完整的代码。 如果实在看不懂,直接复制粘贴即可。 改几个地方就适用于其他游戏(当然也不是全部都可以,大部分单机游戏都可以,但只有部分网络游戏可以)。
#包括
#包括
无效主(无效)
字符命令; HWND hWnd;
双字PID; 处理 hProcess=0; 同时(1)
printf("———————————双星物语2游戏插件—————————\n”);
printf("打开插件O并修改金钱M \n");
printf("修改健康卷H并退出插件E\n");
printf("——————————————————————————————\n”);
命令=getchar();
getchar();
if (命令=='E'||命令=='e')
休息;
别的
if (命令=='O'||命令=='o')
hWnd=FindWindow(NULL,"双星物语2");
if (hWnd!=0)
GetWindowThreadProcessId(hWnd,&Pid);
hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,Pid);
如果(h进程==0)
printf("\n打开游戏进程失败\n");
别的
printf("\n游戏进程成功开启\n");
if (命令=='M'||命令=='m')
如果(h进程==0)
printf("\n请先打开插件\n");
别的
DWORD 金钱; 双字地址=0x005b85b0;
printf("\n你想要多少钱?:");
scanf("%ld",&Money); DWORD res=WriteProcessMemory(hProcess,(LPVOID)Addr,&Money,4,0);
如果(res==0)
printf("\n修改失败\n");
别的
printf("\n修改成功\n");
if (命令=='H'||命令=='h')
如果(h进程==0)
printf("\n请先打开插件\n");
别的
双字 HP; 双字地址=0x005b85cc;
printf("\n你想要多少血?:");
scanf("%ld",&HP); DWORD res=WriteProcessMemory(hProcess,(LPVOID)Addr,&HP,4,0);
如果(res==0)
printf("\n修改失败\n");
别的
printf("\n修改成功\n");
返回;
文章来源:https://www.toutiao.com/article/6399485431691346433/?wid=1691215657521