记首次用Cheat Engine修改游戏内存

Posted y1ah0的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记首次用Cheat Engine修改游戏内存相关的知识,希望对你有一定的参考价值。

记得第一次见到ce修改器还是因为听闻ce修改器可以修改百度网盘下载速度,但是测试了一下发现确实可行(虽然不知道现在修复了没)。最近想起来得好好研究它的功能。
最后我发现了了一片讲的很细的CE修改器教程入门篇,作者用ce自带的一个练习程序详细的讲解了几种修改方式。学习之后为了实践一下成果,打开了我最近玩的土豆兄弟这款游戏,测试发现修改很简单,于是这里简单记录一下,内容很简单,主要想为后续逆向相关内容做一个开端。

  1. 首先进入游戏后,在ce中选择土豆兄弟的游戏进程
  2. 发现余额还剩30,于是在ce中选择精确数值首次扫描,数据类型先尝试4字节行不行

  3. 搜索出来一堆结果,接着在游戏中拾取道具后余额变为33
  4. 接着ce中点击再次扫描搜索现在的余额33

  5. 最后就剩一个内存地址了,想必这就是余额的内存地址了,那么尝试4字节数据就没错。双击地址后添加到下面栏
  6. 点击下面的数值,修改为9999
  7. 点击ok后回到游戏,通过拾取货币后刷新值后发现余额确实被修改了,简单的游戏内存修改就完成了。

其实ce还有还多定位方法,这不过是最简单的一种,具体可以百度搜一搜。

[Cheat Engine]多级指针查找

  这是对官方教程的操作过程一次记录

  首先见官方教程:

技术图片

  开始干活。首先我们先用cheat engine查找教程给出的数值2101,并找出修改了数值所在内存地址的代码,还有寄存器值:

技术图片

可以看到rsi中保存的地址加上偏移量0x18就是保存数值的地址。这时候我们再去查找rsi中所保存的地址是从哪来的。在cheat engine中十六进制查找rsi的值和访问该值的汇编代码,如下:

技术图片

根据教程的说法,这指针有四级,所以我知道,这仍然不是真正的地址。所以继续查找rsi中的值,以及访问该值的汇编代码,如下:

技术图片

这里cheat engine给出的值有误。这里它给出的地址值是1002e18指向的代码执行后rsi的值。实际上我们要查找的是这句代码没有执行之前的值。这里可以通过在代码处下断点来找rsi的值。也可以直接搜索cheat engine搜出来012a4b30的地址值012bcf18。因为值都是一样的。好,继续查找:

技术图片

这里同样搜索cheat engine给出的值。

技术图片

直到这里,我们找到了基址。基址就是100306b00。

技术图片

手动添加地址。并添加上每级指针的偏移量。

大功告成。

以上是关于记首次用Cheat Engine修改游戏内存的主要内容,如果未能解决你的问题,请参考以下文章

新手如何使用Cheat Engine (CE) 来修改“我的世界“?

微信内存小程序code获取cheatengine

Windows 逆向使用 Cheat Engine 工具进行指针扫描挖掘关键数据内存真实地址 ( 指针扫描 )

cheatengine怎么用

Cheat Engine进阶教程:gtutorial-i386闯关记 第三关 [完结撒花]

如何从Cheat Engine保护Flash游戏?