Cheat Engine 保姆级教程(官方 1 - 12 关)

软件下载链接


Cheat Engine 软件可直接在官网下载(英文版)

官网链接:https://cheatengine.org/

本文使用 Cheat Engine 7.3 汉化版

链接:https://pan.baidu.com/s/1QnPvvN00ghiUHCOYs-Zj3Q
提取码:f4se

1:准备工作


2 - 9 为文字关,10 - 12 为图形关,软件下载解压后打开即可使用

教程点击此处打开,此处我们打开 64 位教程
在这里插入图片描述

然后添加进程,如下图

在这里插入图片描述

2:精确值扫描


设置为4字节类型,扫描类型为精确数值
在此处搜索健康值100
在这里插入图片描述
点击打我,健康变为97
在这里插入图片描述
输入97点击再次扫描,此时左边只剩下一个数值
在这里插入图片描述
双击将地址储存在下面列表中
在这里插入图片描述
双击 (数值 97) 修改为 1000,过关
在这里插入图片描述

3:未知的初始值


设置为4字节类型,扫描类型为介于 0 - 500 之间扫描
点击打我,下面会显示出健康减少的数值,我的为 - 4,更改扫描类型,此处输入 4
在这里插入图片描述
之后同样操作再筛选,直到结果确定

同样更改数值为5000,过关

4:浮点数


设置为(健康为单浮点,弹药为双浮点),扫描类型为精确数值
都修改为大于 5000 的值,过关
在这里插入图片描述

5:代码查找


设置为4字节类型,扫描类型为精确数值
右键目标地址,选择 ’ 找出是什么改写了这个地址 ’
在这里插入图片描述
弹出了一个空白框,这个空白框会捕捉接下来对此地址数据做操作的指令,再次改变数值
在这里插入图片描述
点击替换,输入 nop(nop指令即为空指令,即不做任何修改)
在这里插入图片描述
再次改变数值,会发现数值并没有改变,因为此时执行的是我们修改后的 nop 指令
过关

6:指针


此题点击改变数值的按钮时,会触发一个修改数值的汇编指令,指令通过1个指针,指令——指针1,指针 1 指向数值地址,执行此命令,修改数值(此处不理解没关系,可以看看指针相关知识,我们接着往下看)

扫描前设置为4字节类型,扫描类型为精确数值
在这里插入图片描述

找出是什么改写了这个地址,出现空白框
再点击改变数值
在这里插入图片描述
下一个地址为 rdx,没有偏移,点击此指令下拉查看 rdx 的地址
在这里插入图片描述
记得重置为新的扫描,将 rdx 的地址复制后粘贴到搜索框,勾选左侧的 HEX (此项为搜索地址值)
在这里插入图片描述
双击搜索的结果添加到列表,然后点击双击此项的地址值,出现此窗口,指针选项打勾,刚才 rdx 的偏移为 0,此处设置为 0 即可,去掉十六进制的勾,此处显示十进制的数值
在这里插入图片描述
此时新地址的数值与第一次的数值相同,因为第二个指针也指向这个数值 14 的地址
在这里插入图片描述
下面这个为基地址,即使退出了游戏,基地址的数据也不会发生改变,这才是我们真正要修改数据的地方,接下来输入 5000,点击改变指针,在 3s 内确认修改即可,过关
在这里插入图片描述

7:代码注入


设置为 4 字节类型,扫描类型为精确数值
搜索到这个健康值,如下图
在这里插入图片描述
右键此条数据,选择 ‘找出是什么改写了这个地址’,再次点击打我,找到改写健康值的指令
在这里插入图片描述
点击显示反汇编程序,之后点击工具,选择自动汇编
在这里插入图片描述
点击模板里的代码注入,注入后如下图
在这里插入图片描述
图中的 sub 指令为减少健康值,01 为减少 1 滴健康值。将 sub 指令修改为下图的 add 指令,数值改为 2,即为增加 2 滴生命,点击 Execute 按钮注入
在这里插入图片描述
点击 打我按钮 会发现变为增加 2 滴健康了,过关

8:多级指针


多级指针和指针原理一样,只是多个指针层层指向来套娃,和第六关指针做法相同,只是要多找几次
指令——指针1,指针1 —— 指针2 …最后指针 n 指向数值地址

设置为 4 字节类型,扫描类型为精确数值
首先找到数值地址
在这里插入图片描述

右键,找出是什么改写了这个地址。
再改变数值,捕捉到一个指令,它指向 rsi,偏移为 18
然后在窗口下面的详细数据中找到 rsi
在这里插入图片描述

将此地址复制到主页面( HEX 打勾),搜索出新地址,添加到列表,如下图设置偏移为 18
在这里插入图片描述

列表第二个新地址右键,点击 ‘找出是什么访问了该地址’ (注意此处为访问,不是改写,是因为此处是指针而非数据地址),如下图选择第一项
在这里插入图片描述
改变数值,捕捉指令如下图
在这里插入图片描述

mov 指令指向 rsi,偏移为 0,因为mov指令已经替换掉了 rsi,所以咱们要的是第一个指令的rsi
在下面查看rsi地址,主页面搜索此地址,同样添加到下面列表中,然后如下图设置,刚才的第一次偏移输入18,这次为 0
在这里插入图片描述
同样右键第三个,找出是什么访问该地址,rsi 如下,偏移为 18
在这里插入图片描述
搜索后添加到列表,如下图设置
在这里插入图片描述
再重复一次,rsi 偏移为 10
在这里插入图片描述
搜索此地址,添加到列表,如下图设置
在这里插入图片描述
此时所有数值应该相同(在 10 进制下),列表最后一个地址在结果中显示为绿色,表明为基地址,我们找到了这个地址!
在这里插入图片描述
点击改变指针,并在 3 秒内修改基地址的值为 5000,过关

9:注入 + +


经过尝试,此题的健康值类型为单浮点型

那么什么是共享代码呢 ?
首先我们从游戏代码的角度看,游戏开发者为了简化玩家扣血的操作,编写了一个函数,每个玩家受到伤害时都会调用此函数来减少生命值。所以此函数为共享函数,我们要在这个函数扣血的地方做一些手脚,判断是敌人还是友方,如果是友方则不扣血。
一般游戏中都会有一个标识符来标记是敌是友,只要我们判断这个标识符即可

同样找出这四个健康值的地址,描述里标识开来
在这里插入图片描述

右键其中一个角色都可以,正如前面所说他们都调用这一个扣血的函数,这里我们右键 Dave,找出是什么改写了该地址,点击显示反汇编
在这里插入图片描述
点击 ‘找出指令访问的地址’
在这里插入图片描述
出现空白框,这个地址即为共享的扣血函数的地址。四个玩家都攻击一遍,发现这四个地址都访问了这里
在这里插入图片描述
全选之后右键,点击 ‘ 打开选中地址的分析数据 ’ 。
在这里插入图片描述
对比下图这些数据,可以看到血量,玩家名称等信息,0014行数据看起来是标识符,1为队友,2为敌人,ok知道了这些信息,我们进行下一步
在这里插入图片描述
右键Dave,找出是什么访问了该地址,再攻击一次Dave,显示反汇编
在这里插入图片描述
咱们进行代码注入,工具 — 自动汇编,模板 — 代码注入,代码根据自己的寄存器名称修改
此处解释一下下图代码:label(m) 为标签,cmp为比较 [rbx + 14] (注:rbx + 14 为敌友标识符的地址,上面的对比图里有)和 1 的值,je是一个状态值 (想了解可以查看汇编指令),若 cmp 比较的两个值相等时,je 置 1,否则置 0; je 置 1 时会跳转至 m: 处,不执行扣血指令 movss,若你的代码中为 mov 不用修改;
在这里插入图片描述
修改后注入代码,重启游戏并自动执行,Dave 和 Eric 不扣血,过关

10 图形关 Level 1


进入第一关,目标是杀死靶子
在这里插入图片描述
此时我们有两个思路:
1,提升单发子弹的伤害
2,修改靶子的初始血量

这里我们选择第二种方法,搜索未知初始值,打一下,搜索减少的数值。关键的地方来了,也可以搜索未变动的数值,会筛选掉很大一部分,此处我们找到了这个值
在这里插入图片描述
满血为 100,咱们将该值修改为 10,打一下就死了,过关

11 图形关 Level 2


同样两个思路:
1,提升自己的攻击伤害
2,锁定住自己的血量

此处演示第一种,首先咱们要确定到敌人血量数值的地址
选择未知初始值,扫描,打一下,减少值或未变动都多筛选几次,确定找到这个地址,如下图添加到列表
在这里插入图片描述
子弹减少了敌人血量,所以咱们要找到什么改写了这个地址,和前面关卡方法相同,如下图找到了
在这里插入图片描述
显示反汇编,找出指令访问地址
在这里插入图片描述
两个敌人都打几下,会发现4,3为攻击不同敌人调用扣血函数,18为敌人打自己调用扣血函数
在这里插入图片描述
都选中后打开分析面板
在这里插入图片描述
0070行中 0 为自己的标识,1 为敌人标识,接下来打开此条指令的反汇编
在这里插入图片描述
工具 — 自动汇编 模板 — 代码注入
在这里插入图片描述
修改为下图代码后,自己就不会再扣血
在这里插入图片描述
再把 sub [rax+60],edx为扣血指令,咱们修改下图 mov ,即可一击秒杀,过关
在这里插入图片描述

12 图形关 Level 3


该关需要控制小人通过踩踏把红色平台变绿
方法如下:
1,修改敌人的坐标轴来移除敌人
2,修改玩家的坐标轴来踩红色平台

角色坐标为浮点型,敌人会移动,坐标实时改变,结合游戏左下角的pause按钮,大家自由发挥进行搜索
在这里插入图片描述

筛选多次,左侧数据变少一些便不再减少了,将这些数据全部添加到列表
选中全部,右键,锁定住所选地址,会发现敌人都不动了,说明这些地址中有我们所需的,
咱们再一半一半解锁来筛选出具体的地址
在这里插入图片描述
这个为敌人x坐标,咱们把敌人的坐标修改到别的位置,但是发现好像无法修改走,因为它是实时更新的,没关系咱们接下来找不动的y坐标,浏览相关内存数据
在这里插入图片描述
让敌人保持跑动状态,下图中三个实时改变的红色数据为x轴,后面不动的黄色为y轴,咱们在此处改变y的值
在这里插入图片描述
y都改成10,敌人消失
在这里插入图片描述
下面查找玩家的x,y,同样改变搜索改变搜索,不变搜索…
注意:此处设置热键搜索,此处改变数值时必须快点搜索(编辑 — 设置,热键中设置如下图)
在这里插入图片描述
找到x坐标,浏览相关内存地址,移动小人,发现x坐标改变,后面的0.88为y
在这里插入图片描述

咱们通过修改y轴位置为 -2,到达如图位置,其实可以发现,这个游戏里 y 坐标正方向朝下
在这里插入图片描述

踩平台,进入小门,通关!
在这里插入图片描述

  • 37
    点赞
  • 161
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值