Cheat Enginee(CE)对扫雷中部分属性的内存地址寻找以及修改~逆向分析

Cheat Enginee(CE)对扫雷中部分属性的内存地址寻找以及修改

分析“初级”、“中级”和“高级”的棋盘内存地址范围

“初级”棋盘内存地址范围

点击取消“快速扫描”,扫描类型选择“未知的初始值”,点击棋盘第一个格子,随后点击“首次扫描”。

在这里插入图片描述

点击扫雷中间的按钮重置游戏,然后点击第一格子,如果第一个格子和初始扫描的数值一样,就选择未变动的数值进行扫面;如果和第一次初始扫描的数值不一样,就扫描变动的数值

在这里插入图片描述

紧接着继续点击扫雷中间的按钮重置游戏,如果第一个格子和上一次扫描的数值一样,就选择未变动的数值进行扫面;如果和上一次扫描的数值不一样,就扫描变动的数值,重复这个步骤,知道找到一个绿色的基地址为止。

在这里插入图片描述

重复步骤直到找到绿色的基地址

在这里插入图片描述

双击将这个基地址记录添加到下方,右键点击浏览相关内存区域

在这里插入图片描述

内存区域如下

在这里插入图片描述

此时点击扫雷中间的笑脸,并点击第一个格子,观察内存区域数值变化情况,进而得出扫雷第一个格子的地址

在这里插入图片描述

此时可以观察的到,第一个格子的地址为01005361

同理点击最后一个格子可以知道最后一个格子的地址

在这里插入图片描述

由上图内存地址分析可知此时最后一个格子的内存地址是01005469

综上所述,初级的格子内存的地址范围为:01005361~01005469

“中级”棋盘内存地址范围

点击取消“快速扫描”,扫描类型选择“未知的初始值”,点击棋盘第一个格子,随后点击“首次扫描”。

在这里插入图片描述
紧接着继续点击扫雷中间的按钮重置游戏,如果第一个格子和上一次扫描的数值一样,就选择未变动的数值进行扫面;如果和上一次扫描的数值不一样,就扫描变动的数值,重复这个步骤,知道找到一个绿色的基地址为止。

在这里插入图片描述

依照数值是否发生变化而进行扫描,知道扫描出绿色的基地址

在这里插入图片描述

在这里插入图片描述

双击将这个基地址记录添加到下方,右键点击浏览相关内存区域

此时点击扫雷中间的笑脸,并点击第一个格子,观察内存区域数值变化情况,进而得出扫雷第一个格子的地址

在这里插入图片描述

由图可知此时第一个格子的初始地址为:01005361

同理点击最后一个格子可以知道最后一个格子的地址

在这里插入图片描述

由图观察可知此时最后一个格子的地址为:01005550

综上所述中级棋盘的内存地址的范围为01005361~01005550

“高级”棋盘内存地址范围

“高级”棋盘内存地址范围寻找过程和前两者相似,不再进行展开

高级棋盘的内存地址范围为:01005361~0100555E

找出“雷数”、“笑脸”和“计时器”的内存地址

找出“旗子”的内存地址

以中级棋盘为例子,雷数的初始值为40,所以首次扫描应该以精确值40开始扫描

在这里插入图片描述

根据游戏规则可知,游戏中显示的是旗子的数量以及计时器,我们进行游戏时旗子的数量和雷的数量时一致的,我们首先找到旗子的地址可以为后续减轻负担。

在这里插入图片描述

扫描之后得到结果,一个绿色的基地址

在这里插入图片描述

紧接着我们双击将他添加到记录中并且观察内存地址

在这里插入图片描述

综上所述,存放“旗子”的内存地址为01005194

找出“雷数”的内存地址

由于在每一局的游戏中旗子的数量和雷的数量是相等的,所以我们可以通过不同的棋盘来搜索炸弹的数量,从而找到地址。

首先切换到初级棋盘,此时的雷数为10,所以搜索精确值为10

在这里插入图片描述

首先切换到中级(或者高级)棋盘,此时的雷数为40(或者99),所以搜索精确值

在这里插入图片描述

此时得到三个绿色的基地址

在这里插入图片描述

通过插旗发现其中一个地址发生变化,且与之前找到的旗子的内存地址一致,则这个地址为旗子的地址

在这里插入图片描述

然后将剩余两个的地址全部添加到记录中,分别修改剩余两个的值为1,然后在棋盘上进行操作看修改谁能直接通关,那么这个地址对应的就是雷数的地址

在这里插入图片描述

修改这个地址发现通关了,那么这个地址就是雷数的地址

在这里插入图片描述

综上所述,雷数的地址为010056A4

找出“笑脸”的内存地址

分析:笑脸的内存地址寻址,可以通过笑脸的状态改变进行搜索,笑脸的状态在正常状态下为笑脸,而点击时嘴巴会嘟起来,失败之后会生气,而通关之后就会变得很帅气,所以我们用状态进行寻找。

由于不知道初始值的大小,则我们采用未知的初始值开始扫描的办法

在这里插入图片描述

利用“雷数”内存地址的寻找以及修改实现快速过关,使得笑脸的状态发生改变,然后就可以扫描变化的数值

在这里插入图片描述

然后在继续进行操作观察数值的变化

改变为失败状态时

在这里插入图片描述

改变为胜利状态时

在这里插入图片描述
根据基地址的变化分析,第一个地址中的数字变化情况符合,状态变化,将地址记录到下方

根据分析可知表情状态为胜利时,看到地址的数值为3;我们再点击棋盘,改变表情状态,观察上述两个地址的数值变化表情呈“笑脸”时,数值为0;嘟嘴时,数值为1,失败时,数值为2。

综上所述,“笑脸”的基址为01005160

找出“计时器”的内存地址

分析:因为计时器的时间是从0开始所以我们按照精确值0进行首次扫描,由于时间从游戏开始就一直会增加,所以我们可以扫描增加的数值,进而找到“计时器”的内存地址

在这里插入图片描述

随机点击一个方格让计时器开始工作,然后我们扫描增加的数值

在这里插入图片描述

扫描到一个基地址,并且观察到这个地址对应的数值一直在增加,且和计时器数值相同,那么这个地址就是计时器的内存地址

在这里插入图片描述
综上所述,“计时器”的内存地址是0100579C

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CYS.burst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值