记首次用Cheat Engine修改游戏内存
Posted y1ah0的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记首次用Cheat Engine修改游戏内存相关的知识,希望对你有一定的参考价值。
记得第一次见到ce修改器还是因为听闻ce修改器可以修改百度网盘下载速度,但是测试了一下发现确实可行(虽然不知道现在修复了没)。最近想起来得好好研究它的功能。
最后我发现了了一片讲的很细的CE修改器教程入门篇,作者用ce自带的一个练习程序详细的讲解了几种修改方式。学习之后为了实践一下成果,打开了我最近玩的土豆兄弟这款游戏,测试发现修改很简单,于是这里简单记录一下,内容很简单,主要想为后续逆向相关内容做一个开端。
- 首先进入游戏后,在ce中选择土豆兄弟的游戏进程
- 发现余额还剩30,于是在ce中选择精确数值首次扫描,数据类型先尝试4字节行不行
- 搜索出来一堆结果,接着在游戏中拾取道具后余额变为33
- 接着ce中点击再次扫描搜索现在的余额33
- 最后就剩一个内存地址了,想必这就是余额的内存地址了,那么尝试4字节数据就没错。双击地址后添加到下面栏
- 点击下面的数值,修改为9999
- 点击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) 来修改“我的世界“?
Windows 逆向使用 Cheat Engine 工具进行指针扫描挖掘关键数据内存真实地址 ( 指针扫描 )