游戏辅助编程(一)修改内存

简介: 单机游戏:瘟疫公司 Plague Inc:Evolved开发工具:VisualStudio 2017其他工具:Cheat Engine 6.4项目目标: 通过修改DNA点数,让瘟疫更快进化,从而赢得游戏。

单机游戏:瘟疫公司 Plague Inc:Evolved


开发工具:VisualStudio 2017


其他工具:Cheat Engine 6.4


项目目标


       通过修改DNA点数,让瘟疫更快进化,从而赢得游戏。


微信图片_20220424133746.jpg


关键技术


1.找到代表“DNA点数”这个变量的内存地址


       使用工具Cheat Engine扫描到 DNA点数的内存地址,具体怎么使用这里就不赘述了。


       工具的大概原理是:比如游戏刚开始时,DNA点数是8,那么扫描一遍内存值是8的所有地址,进行保留。过一段时间后增长至10,那么从刚才保留的内存地址列表,扫描一遍当前内存值是10的地址。如此循环,直到无法再过滤。


       有时,过滤后只剩一个内存地址,那么这个地址即是代表DNA点数的内存。有时会剩2-4个或更多,这时有可能是游戏UI或其他模块定义了一套该模块独立使用的变量,同时使用订阅者模式订阅了该变量,这样每次此变量发生变化时,会通知其他模块同时更新。这时可以依次修改这些内存的值,并在游戏中操作,看下到底是哪个变量在起作用。


       此时,亦可直接通过CE来修改内存数值。在扫描时,读取内存数值,亦可通过编程来实现。


微信图片_20220424133935.jpg


2.编程修改内存


       1)获取游戏窗口句柄


 HWND hwnd_Game = FindWindow(NULL, L"Plague Inc: Evolved");


   2)获取游戏进程ID


     DWORD ProcessID;
            GetWindowThreadProcessId(hwnd_Game, &ProcessID);


   3)获取游戏进程


  HANDLE h_process = OpenProcess(PROCESS_ALL_ACCESS, false, ProcessID);


4)修改内存


     int ret = WriteProcessMemory(h_process, (LPVOID)0x4F2E000C, &num, 4, NULL);


   当ret为0时,修改失败,为1时,修改成功。



   至此,项目目标已实现。为了更方便的游戏,可以写一个循环,把DNA点数锁定在200,类似打怪游戏的锁血。


   完整代码如下:


微信图片_20220424134332.jpg



相关文章
|
1月前
|
Java 开发者
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
25 0
|
1月前
|
监控 Java 图形学
【性能优化篇】U3D游戏卡顿大作战:内存与渲染效率的极致提升
【7月更文第12天】在Unity3D游戏开发领域,性能优化是决定玩家体验好坏的关键一环。游戏频繁卡顿,不仅破坏了沉浸式体验,还可能造成玩家流失。本文将深入探讨如何有效解决U3D游戏卡顿问题,特别聚焦于内存管理和渲染效率两大核心领域,助力开发者打造流畅丝滑的游戏世界。
34 0
|
2月前
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
|
1月前
|
设计模式 缓存 安全
Java面试题:设计模式在并发编程中的创新应用,Java内存管理与多线程工具类的综合应用,Java并发工具包与并发框架的创新应用
Java面试题:设计模式在并发编程中的创新应用,Java内存管理与多线程工具类的综合应用,Java并发工具包与并发框架的创新应用
21 0
|
1月前
|
设计模式 安全 Java
Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
54 0
|
1月前
|
安全 Java 数据库连接
Java面试题:解释Java内存模型的无锁编程支持,并讨论其优势和局限性,解释Java中的CompletableFuture的工作原理,并讨论其在异步编程中的应用
Java面试题:解释Java内存模型的无锁编程支持,并讨论其优势和局限性,解释Java中的CompletableFuture的工作原理,并讨论其在异步编程中的应用
17 0
|
1月前
|
Java
Java面试题:Java内存模型与并发编程知识点,解释Java中“happens-before”的关系,分析Java中的内存一致性效应(Memory Consistency Effects)及其重要性
Java面试题:Java内存模型与并发编程知识点,解释Java中“happens-before”的关系,分析Java中的内存一致性效应(Memory Consistency Effects)及其重要性
18 0
|
1月前
|
存储 分布式计算 Hadoop
HadoopCPU、内存、存储限制
【7月更文挑战第13天】
100 14
|
19天前
|
存储 固态存储 芯片
计算机中内存与存储
【7月更文挑战第28天】
24 1
|
24天前
|
存储 弹性计算 程序员
新手程序员如何阿里云服务器配置?新人开发者CPU内存带宽存储怎么选?
对于新手开发者、个人或学生选择阿里云服务器,推荐ECS经济型e实例(ecs.e-c1m1.large),适用于小型网站或轻量应用。配置2核2G内存、3M固定带宽、40G ESSD系统盘,仅99元/年且续费同价。