CE修改器入门:查找共享代码

使用CheatEngine修改游戏共享代码实现胜利
本文介绍了如何利用CheatEngine分析并修改游戏中的共享代码,以在不锁定HP的情况下确保胜利。通过搜索和分析游戏人物的血量,识别共享代码,并通过汇编注入实现特定条件下的血量修改。这种方法涉及内存扫描、动态调试和结构体解析等技术。

Cheat Engine 一般简称为CE,它是一款开放源代码的游戏数据分析工具,其主要功能包括、内存扫描、十六进制编辑器、动态调试功能于一体,且该工具自身附带了图形化生成模块,可以用它很方便的生成自己的脚本,CE可以说是目前最优秀的游戏修改器,这款修改工具绝对值得你去学习。

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

步骤 9: 注入++: (密码=31337157)

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

1.首先你需要根据第一关中的搜索方法,分别将下面四个人物的血量搜索到,下面我已经搜索好并做好了备注。

picture

2.你可以分别在每个动态地址上面,右键选择【找出是什么改写了这个地址】,会发现这四个地址都指向了同一条汇编代码,这也就说明了其使用了共享代码。

picture

3.我们直接在每一个地址上面右键选择【浏览相关内存区域】,然后对比四个地址会发现一些规律。

picture

我方队友的结构

picture
picture

敌人的结构

picture
picture

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

4.接下来我们要注入代码了,CE切换到内存浏览窗口,然后选择【工具 -> 自动汇编】,【模板 -> 代码注入】点击确定。

picture

上方原始代码是 mov [ebx+04],eax,意思就是,血量处于 ebx+04 的位置。

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

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

picture

6.直接写以下汇编代码,然后执行,注入完成后回到练习程序中然后点击【重新启动游戏并自动执行】,本关会顺利通过。

picture

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王瑞MVP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值