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