内存与调试-Cheat Engine 介绍与教程通关

Cheat Engine 简称 CE ,这是一款开源的内存查看和修改软件。作用如下:

  • 1、可以查看和修改别的软件的内存数据。
  • 2、可以修改别的软件的运行逻辑和过程。(也就是注入汇编代码)

官网:https://www.cheatengine.org/

CE 是英文版的,里面自带了一个新手通关教程,不过是英文的,可能看不懂。嗯,没关系,网上有人翻译了带中文教程的中文版CE。点击此处下载CE免安装中文版

感觉通关教程,难道不是很大。

1、下面两个是教程1-8 的图文解说,这里就不具体写了。
  • https://www.52pojie.cn/thread-833773-1-1.html
  • https://blog.csdn.net/cgs_______/article/details/77799091

但是有一个巨坑要讲一下:就是关卡8(即step8),多级指针的问题:

最后一个基址指针,需要设置多次偏移,才能使得指针能够指向最终的目标地址。内存与调试-Cheat Engine 介绍与教程通关

等最后,操作完成,点击改变指针就能进入第九关了。如果最后一个基址指针不设置多次偏移(offset)的话,就永远过了第8关了。

2、第九关教程,有点难度,可以看这里:

经过实际测试,这个版本的CE关卡9教程,和下面的攻略有稍许不匹配,但基本思路是一样的。教程来自  https://zhuanlan.zhihu.com/p/33702835 。

游戏讲的是,你需要调整游戏内部数据,来使得玩家控制的Dave和Eric打败500血的电脑。正常情况自动执行,玩家的血量会很快归0,so just hack it!

1 找到四个血量的地址

首先,用精确数值扫描的方法,找到Dave的血量地址,注意这个地方血量是单浮点型。

如上图,我找到了两个玩家的血量地址,并设置了描述。

接着,以Dave为例,右击,选择“是什么改写了这个地址”,打开debug窗口,并再次攻击Dave,找到相应的代码,如图

打开:“显示反汇编程序”

右击moves [rbx+08],xmm0,选择,找出指令访问的地址。出现一个新的空白对话框,再次对每个角色攻击一次,结果如图。

可以发现,前两个地址正是Dave和Eric的地址,并且如果你之前用类似的方法找到了两个电脑的地址,正是下面两个。故猜测,运行“攻击”时,程序是依次获得该角色的指针位置,放到rbx寄存器中,然后在offset为08的位置,就是该角色的血量,修改这个血量,即角色受到了攻击。那么,要让Dave和Eric胜出,我们就要让他们血量不减少的同时,找到电脑的血量,并使其减少。

2 分析数据

选中四个地址,右击选中“打开选中的地址分析数据”(control+D)。如图

可以发现,每个角色,除了在基址的前几个地址有数据,别的都是0,仔细贯彻这些数据可以发现,在offset为14的位置,玩家的值为1,电脑的值为2。并且多次攻击发现,这个值为定值。故,我们可以采用这一点来区分玩家与电脑,达成目标。

回到汇编代码的窗口,分析命令moves [rbx+08],xmm0,并结合上面的代码,我们发现下图这样的代码:

显然,这是一个简单的改变[rbx+08]位置值的指令。先将[rbx+08](血量)存储的值放到xmm1中,再减掉一个xmm0,然后在放回去。

故在subss xmm1,xmm0处代码注入。

3 注入代码

打开-内存浏览器-工具-自动汇编

再打开模板-代码注入

如图

代码会注入在原代码的上方,并且原来的代码也会保留。其中newmem,originalcode等,是汇编中的位置标志,可以直接用来跳转。

故在newmem下添加代码如下:

cmp [rbx+14],1 //判断是否是玩家
jne originalcode //不是玩家,直接跳转到原代码执行
addss xmm1,xmm0 //是玩家,将相减改为相加。也可以去掉这一句,即不对玩家血量进行修改
jmp exit //调到exit处

然后点击执行。回到tutorial程序,重启游戏并自动执行,结果如图

至此,解决了CE的最后一个问题,成功通关。

总的来说,CE是一个相当强劲的修改器,用完之后也深深感到制作者设计之精妙,Cheat Engine :: Index 官方论坛里还有更多的奇技淫巧,有兴趣的朋友可以去看看。


3、CE有什么用,答用于内存分析:

1、可以看到Windows 内存中 字符串编码是utf-16 形式。字符编码-用Cheat Engine查看内存线性地址及系统内部编码

2、可以研究内存分页机制 (下面的文章大体OK,但有部分错误)

https://blog.csdn.net/tutucoo/article/details/84729919

https://www.twblogs.net/a/5b83db5d2b71777cb15c6302/zh-cn

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments