2.8 CE修改器:寻找共享代码

news2024/11/15 8:23:07

本关我们将学习共享代码,在C语言中角色属性都是以结构体的方式进行存储的,而结构体所存储的信息都是连续性的,这一关我们将会解释如何处理游戏中的共用代码,这种代码是通用在除了自己以外的其他同类型对像上的常常你在修改游戏的时候,你找到了一个单位的健康值或是你自己角色的生命值,你会发现一种情况,如果你把生命值相关代码移除的话,其结果是你的角色无敌,但你的敌人也无敌了,这就是共享代码的问题。

本关模拟一种游戏,其中左边为我方,而右边为敌人,当我们点击重新启动并自动执行的时候我方血量不足会死亡。你的任务是找到改写健康的代码, 并且修改以至于你可以获得胜利,但"绝不能"使用锁定HP的方法。在遍历血量的时候应该使用单浮点数进行搜索。

首先读者需要根据第一关中的搜索方法,分别将下面四个人物的血量搜索到,需要注意在搜索时使用浮点数模式,如下图所示;

读者可以分别在每个动态地址上面,右键选择找出是什么改写了这个地址,会发现这四个地址都指向了同一条汇编代码,而之所以会如此是因为,这些代码使用了同一个结构体进行了存储和同样的代码进行管理,这也就说明了其使用了共享代码。

共享代码的问题就在于,如果将此处的汇编指令替换掉,则会影响敌方与我方两个阵营的问题,一旦数据发生改变则两者都会影响,如果我方队友全部无敌了,地方也会无敌,此方法将变得毫无意义可言,无法达到修改数据的作用。

我们分别在每一个地址上面右键选择浏览相关内存区域,然后对比四个地址会发现一些规律;

首先看一下我方阵营中内存数据是如何展示的,如下图所示分别是玩家DaveEric的内存数据;

接着看一下敌方阵营中内存数据是如何展示的,如下图所示分别是玩家HALKITT的内存数据;

上方的四个图片可看出我方队友编号为1而敌人的编号为2,我们可以通过编号来判断是否为敌人,来决定要不要让其掉血。当然也可以判断名字的开头字母来决定,如果是DE开头,则说明是队友不能让其掉血,否则的话则直接执行扣血代码。

接下来我们要注入代码,CE切换到内存浏览窗口,然后选择工具 -> 自动汇编模板 -> 代码注入点击确定,如下图所示,图中的原始代码是mov [ebx+04],eax,意思是当前血量处于ebx+04的位置。

了能够遍历到状态位,我们需要计算出队伍编号和血量的偏移值,

观察下图发现 Dave 血量地址是 0621E91C 和队伍编号地址 0621E928,两者十六进制相减(0621E928 - 0621E91C = 0C)得到0C,如果血量是 ebx+04,那么队伍编号就应该是 ebx+04+0C 就是 ebx+10

直接写以下汇编代码(这段代码的含义是,判断阵营位置处是否为1如果是则直接跳转到结束不执行扣血,如果不是则说明是敌人直接执行原始指令扣血),然后执行注入。

当一切准备就绪,点击重新启动游戏并自动执行,本关则可顺利通过,如下图所示;

使用CE(Cheat Engine)修改器,您可以轻松地修改游戏内的各种数值和功能。在本入门指南中,我们介绍了修改器的许多功能,包括精确数值扫描、未知数值扫描、浮点数扫描、代码替换功能、寻找数值指针、代码注入功能、多级指针查找和寻找共享代码。这些功能可以让您在解锁游戏中的隐藏内容或改进游戏玩法上拥有更大的自由度。

无论您是新手还是有经验的玩家,本入门指南都提供了一些有用和实用的技巧来帮助您更好地使用 CE 修改器。但请记住,游戏开发者通常不赞成修改游戏的任何方面,并且在某些情况下,这可能会导致您被游戏管理员封禁。因此,请使用 CE 修改器时要小心并有节制。希望这个入门指南能帮助您掌握使用 CE 修改器的基础知识,以便更好地定制您的游戏玩法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1201578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Vue.js中,什么是mixins?它们的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

Linux基础环境开发工具的使用(三):gdb调试器

Linux基础环境开发工具的使用[三]:gdb调试器 一.调试命令的应用场景1.为什么要介绍调试命令的应用场景呢?2.调试命令的应用场景1.找到问题1.不借助调试2.调试 2.解决问题1.不借助调试2.借助调试 二.调试命令1.gdb使用的前置说明2.基础指令3.断点相关指令4.范围查找相关操作5.局…

通信原理板块——线性分组码之循环码

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、循环码原理 循环码(cycle code)…

C# Onnx LSTR 基于Transformer的端到端实时车道线检测

目录 效果 模型信息 项目 代码 下载 效果 模型信息 lstr_360x640.onnx Inputs ------------------------- name:input_rgb tensor:Float[1, 3, 360, 640] name:input_mask tensor:Float[1, 1, 360, 640] -----------------…

罕见!阿里云全系产品崩了。。

作者:苍何,前大厂高级 Java 工程师,阿里云专家博主,CSDN 2023 年 实力新星,土木转码,现任部门技术 leader,专注于互联网技术分享,职场经验分享。 🔥热门文章推荐&#xf…

安全认证框架Shrio学习,入门到深度学习,SpringBoot整合Shiro小案例,含代码

权限概述 什么是权限 什么是权限 权限管理,一般指根据系统设置的安全策略或者安全规则,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。 权限管理再系统中一般分…

两个序列(数论)

两个序列 Problem:B Time Limit:1000ms Memory Limit:65535K Description Gugu 有两个长度无限长的序列A,BA0a^0/0!,A1a^1/1!,A2a^2/2!,A3a^3/3!…. B00, B1b^1/1!,B20,B3b^3/3!,B40, B5b^5/5! … Douge 看到这道这两个序列很觉得很麻烦,所以他想到一个好点子&…

【LeetCode刷题-二分查找】--704.二分查找

704.二分查找 class Solution {public int search(int[] nums, int target) {if(nums.length 0){return -1;}int left 0,right nums.length - 1;while(left < right){int mid (right - left) / 2 left;if(nums[mid] target){return mid;}else if(nums[mid] < targe…

模拟信号数字化--低通抽样与带通抽样

模拟信号数字化 本文主要涉及模拟信号数字化的基本概念&#xff0c;以及对低通抽样与带通抽样以及其公式推导的详细介绍。关于通信原理还有其他文章可参考&#xff1a; 1、信息量、码元、比特、码元速率、信息速率详细解析——实例分析 2、模拟系统的AM信号的调制与频域分析 3、…

HCIE-Rainbow迁移工具

Rainbow迁移工具 Rainbow迁移工具支持p2v&#xff08;物理机到虚拟机的迁移&#xff09; v2v&#xff08;虚拟机到虚拟机的迁移&#xff09; Rainbow业务上云迁移&#xff1a; Rainbow迁移到公有云&#xff08;利用公有云SMS服务&#xff0c;付费&#xff09; Rainbow迁移到公…

【python】sys-path和模块搜索路径

我们在导入一个模块的时候&#xff0c;比如说&#xff1a; import math它必然是有搜索路径的&#xff0c;那到底是在哪个目录下面找呢&#xff1f;Python解释器去哪里找这个文件呢&#xff1f;只有找到这个文件才能读取、装载运行该模块文件。 它一般按照如下路径寻找模块文件…

matlab simulink PSO算法优化simulink的PID参数

1、内容简介 略 13-可以交流、咨询、答疑 PSO算法优化simulink的PID参数 2、内容说明 标准的PSO算法优化simulink的PID参数 PSO、粒子群算法、simulink参数优化 3、仿真分析 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/s/1yQ1yDfk-_Qnq7tGpa23L7g 提取码&…

企业知识库建设指南:实用经验分享

企业知识库建设是提升内部协作和客户支持效率的重要举措。一个完善的知识库可以帮助企业集中管理和传播知识&#xff0c;提供便捷的自助服务和丰富的编辑工具&#xff0c;从而提升用户体验和品牌好感度。接下来就分享一些经验&#xff0c;关于该如何构建一个高效的企业知识库。…

27 _ 递归树:如何借助树来求解递归算法的时间复杂度?

我们都知道,递归代码的时间复杂度分析起来很麻烦。有一个巧妙的方式是借助递归树来分析递归算法的时间复杂度。 递归树与时间复杂度分析 我们前面讲过,递归的思想就是,将大问题分解为小问题来求解,然后再将小问题分解为小小问题。这样一层一层地分解,直到问题的数据规模…

不可思议,才一周,阅读量就突破千万了

这段时间&#xff0c;我发布的文章阅读量看上去还算可以&#xff0c;但我知道&#xff0c;这并不是终点&#xff0c;而是起点。我深知&#xff0c;写作的道路永无止境&#xff0c;只有不断努力&#xff0c;才能在文字的海洋中游得更远。 在这条道路上&#xff0c;我始终坚持用心…

将VS工程转为Qt的pro工程及VS安装Qt插件后没有create basic .pro file菜单问题解决

目录 1. 前言 2. VS工程转为pro工程 3. 没有create basic .pro file菜单 1. 前言 很多小伙伴包括本人&#xff0c;如果是在Windows下开发Qt程序&#xff0c;偏好用Visual Studio外加装个Qt插件进行Qt开发&#xff0c;毕竟Visual Studio确实是功能强大的IDE&#xff0c;但有时…

牛客刷题记录11.12

继承和组合 二进制数统计 1的个数 和 0 的个数

vmware workstation 与 device/credential guard 不兼容

VM虚拟机报错 vmware虚拟机启动时报错&#xff1a;vmware workstation 与 device/credential guard 不兼容&#xff1a; 系统是win10专业版&#xff0c;导致报错原因最终发现是安装了docker&#xff0c;docker自带下载虚拟机Hyper-V&#xff0c;而导致vmware workstation 与 …

基于51单片机篮球控制器12864显示仿真及源程序

一、系统方案 1、本设计采用51单片机作为主控器。 2、比分液晶12864显示。 3、主客队加减分、节数、24秒、复位等功能。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 void Timer_0()interrupt 1 { TL0 0x00; TH0 0xDC; Count; if(Coun…

[云原生案例2.3 ] Kubernetes的部署安装 【多master集群架构高可用 ---- (二进制安装部署)】

文章目录 1. Kubernetes多Master集群高可用方案1.1 多节点Master高可用的实现过程1.2 实现高可用方法 2. 新Master节点的部署2.1 前置准备2.2 系统初始化操作2.2.1 关闭防火墙、selinux和swap分区2.2.2 修改主机名&#xff0c;添加域名映射2.2.3 修改内核参数2.2.4 时间同步 2.…