找回密码
 立即注册
易语言编程 2023-05-09 114 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
目标:任意阳光改造
游戏运行时需要的数据一般都放在内存中,方便存取,尤其是一些经常修改的数值。
植物大战僵尸中的阳关值是一个经常变化的值,所以想要修改它首先要找到它在内存中的位置。
使用CE附加到游戏进程,准备搜索其内存。
在游戏中查看当前太阳值。



在 CE 中进行第一次搜索。


有773个搜索结果,太多了。进入游戏更改阳光值,进行二次搜索。


结果就只剩一个了,所以这就是要找的内存地址。有时唯一地址不会那么快出现,只需要改几次值再搜索即可。
双击结果中的地址,将其添加到下面的地址列表中,修改地址的值,查看游戏中的阳光值,验证地址。



sunlight值修改成功,证明地址正确。
然而,这个内存地址只是暂时的。用于在游戏中临时保存当前游戏会话中的阳光值。如果重新启动关卡或开始另一个关卡,保存阳光值的地址将会改变。
不过不管怎么变,游戏总能准确的找到sunshine保存的地址,所以游戏中肯定有基地址。通过这个基地址,作为一个地址指针,经过一系列的偏移,可以确定游戏的每一句都是用来保存阳光值的地址。
既然确定了当前游戏中保存阳光值的地址,那么通过找出哪些地址访问了这个地址,然后回溯,就可以找到阳光的基地址。
使用CE可以查出哪些地址访问了当前sunshine save地址。


可以看出,访问当前阳光值地址的地址有两个,这两个地址都使用0x5560的偏移量,所以寄存器的值就是上层地址指针中的值,即0x1BC86BC8。
使用CE查找指针存放在哪个内存中。


结果有很多,可以依次消除。但是,通常与其他结果有很大不同的就是我们要寻找的结果。这是什么原因?我暂时不想去了解它。
这是结果的第一个结果,添加到地址列表中。
找出哪些地址访问了该内存地址。


可以清楚的看到地址偏移量为0x768,寄存器中的值为0x02809C80。
如上,进行搜索。排除后,有两个地址是不确定的,两个地址都有固定的地址访问,而且是不同的。


它们分别是 0x006A9EC0 和 0x006A9F38。
但是,既然是基地址,那么可能就是阳光值的基地址。添加指针地址,重启游戏,确定基地址。


最后证明这两个就是游戏的基址,呃!



可能是游戏版本的原因,两个基地址都可以用。
最后,整理分析的数据。
sunlight的基地址是:0x006A9EC0和0x006A9F38。
偏移量依次为:0x0、0x768 和 0x5560。
阳光地址计算为:

根据这些地址和偏移量,可以任意编写修改阳光的程序。

17234934131[下载].rar



上一篇:刺激Z场狙J手2代辅助开源集编译可用
下一篇:空间多线程秒赞秒评易语言源码