cheat engine扫雷逆向实验报告(棋盘,雷数,笑脸,计时器)

下载

https://github.com/eastmountyxz/Reverse-Engineering-01-Saolei

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

思路:要找到棋盘内存地址,则需要找到第一格和最后一格的地址,即知道该棋盘,在内存上的地址。对于这两个格子没有精确的数值描述,但我们可以用是否有雷去分析,不断点击第一格格子,根据是否有数值变动就可以找到基质。

初级:先点击最后一格格子,进行未知初始值扫描,然后不断重开游戏,观察值是否变动去扫描,最后得到该格子的基址。

步骤:

1.先扫描未知的初始值(记得取消快速扫描)

2.开始不断重开游戏,每次去点击第一格的地址,观察是否有变化(有空白,雷,数字三种形态),根据变动的值/未变动的值去不断扫描,直到找见该内存地址。

第一次为空白,扫描未知的初始值

第二次依旧为空白,扫描未变动的初始值

第三次为数字,扫描变动的数值

以此类推,最后找到地址

中级与高级步骤与此相同不再演示。

初级棋盘 0100535E ~ 01005469

中级棋盘 0100535E ~ 01005550

高级棋盘 0100535E ~0100555E

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

雷数

思路:

   在自定义中可以去修改雷数,可以去直接搜索雷数,然后不断修改雷数然后搜索。

步骤:

 不断去修改并且搜素雷数,最后得到三个地址

接着,通过右键插旗帜,减少雷数,看看对应哪个内存的值变动

笑脸:

思路:

  笑脸有不同的状态,刚开始时候为笑脸,点击时候为惊叹的表情

炸到后胜利后通过笑脸表情的变化不断扫描。

步骤:

  1.笑脸时候,扫描未知值

2.哭脸时候,扫描变动的值

3.再次点击恢复笑脸后,再扫描变化的值

小技巧:可以将难度调到最低,通过不断切换胜利和笑脸的表情去搜索(也可调到最高,通过不断切换失败和笑脸的表情去搜索)

通过编写程序的经验,对于这类只有三四个选项的变量时,往往会编写一个变量,每个值代表一个选项,而且根据经验而谈,这类flag值一般都设为个位数,即0,1,2,3…

最后找到笑脸地址

计时器:

思路:

  计时器是一个不断增加的数字,当游戏结束时候会停止增加,可以由此去扫描变化的值/增加的数值

步骤:

1.首先扫描未知的初始值

2.随着计时器的增加不断扫描增加的数值

3,分析地雷存放的算法

将雷数修改到最高,发现无论几次都不会第一次就点到雷,所以说地雷的生成是在点击第一次以后,再调用函数生成。随机生成坐标中的几个点,将里面安放雷,每次点击时候,计算该点周围八个格子的雷数并相加后返回。

4,利用思维导图分析“扫雷”游戏软件的工作原理(设计原理)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你怎么睡得着的!

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

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

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

打赏作者

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

抵扣说明:

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

余额充值