“扫雷”游戏逆向分析

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

初级棋盘内存地址查找:

⑴ 打开“扫雷”及CE工具并将“扫雷”在CE中打开,取消快速扫描,扫描类型选择“未知的初始值”,点击棋 盘第一个格子,随后点击“首次扫描”,如下图所示:

                               

 ⑵ 点击“笑脸”,刷新棋盘, 再次点击棋盘第一个格子,若数值与上 一次相同,如下图所示,扫描类型则 选择“未变动的数值”;若数值与上次 不同,则扫描类型选择“变动的数值”。

                  

 ⑶ 步骤(2)反复进行,最后扫描出 绿色的基址,如下图所示:

                         

 ⑷ 将该地址添加到下方地址栏,右键选择“浏览相关内存区域”。点击“笑脸”, 再点击棋盘第一个格子,观察下方内存数据的变化,如下图所示。通过观察,我们可 以得出第一个格子的地址为 01005361。

             

 同理点击笑脸后并点击最后一个格子可以知道最后一个格子的地址为01005469。如下图所示:

         

 

所以初级棋盘内存地址范围为:01005361 ~ 01005469。

同理可得:

中级棋盘内存地址范围为:01005361 ~ 01005550。

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

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

⑴ 找“雷数”的内存地址:

① 要找出“雷数”的内存地址我们可以想如何改变它的数值来找到它,游戏的初级,中级和高级分别对应不同的“雷数”,所以我们可以通过改变关卡难度来改变“雷数”,来找到它的疑似地址。如下图:

                          

② 通过查找我们找到了三个地址,但很显然“雷数”的地址只有一个,那我们可以通过修改这三个地址的数值来观察并判断“雷数”的地址到底是哪个。

先来看01005194,修改其值为1并重置棋盘后点击第一格,发现与未修改之前呈现内容相似,点击其它格后引起爆炸发现“雷数”仍为10,证明01005194不是“雷数”地址。如下图:

 

                                      

 

同理测试01005330后发现与01005194效果相同,证明01005330不是“雷数”地址。

现可以基本确定010056A4为“雷数”,但我们还是测试一下,发现修改其值为1并重置棋盘后点击第一格后通关,证明010056A4为“雷数”地址。如下图:

 

                                                    

 

⑵ 找“笑脸”的内存地址:

① 要找“笑脸”的内存地址就要找“笑脸”的变化,通过玩游戏我们发现“笑脸”有以下几种状态:

                                                  

 ② 找到“笑脸”的变化以后我们就可以通过改变它来寻找其地址了,打开扫雷和CE并用CE打开扫雷,选择扫描类型为未知的初始值,如何开始首次扫描。如下图:

                                                   

③ 然后我们可以点击棋盘,若“笑脸”的状态未变化则选择未变的数值进行再次扫描,若“笑脸”状态发生变化则选择变动的数值进行再次扫描,反复进行几次,我们可以得到两个基址。如下图:

                          

④ 我们得到了两个地址但显然“笑脸”只有一个地址,所以我们现在对这两个地址进项测试,先将这两个地址添加到地址列表并刷新棋盘。如下图:

 然后我们先改变01005000的数值为2并锁定,点击棋盘进行游戏发现棋盘的格子已不能点击,证明01005000不是“笑脸”的地址。如下图:

                                       

 然后同样改变01005160的数值为2并锁定,点击棋盘进行游戏发现只要点击格子“笑脸”自动变为输掉游戏的状态,证明01005160为“笑脸”地址。如下图:

                                                   

⑶ 找“计时器”的内存地址:开始游戏后我们会发现在游戏的左上角有一个随游戏进行时间变化而变化的数字,那就是计时器。如图:        。还没有开始游戏时计时器的数值是0,我们就可以通过精确数值0进行首次扫描,然后开始进行游戏,通过反复地扫描变化的数值来找到“计时器”的内存地址为0100579C。如下图:

 

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值