抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

⼀、⼯具准备

按照《作弊教程一:配置抓包工具》教程配置Charles抓包工具。

二、修改原理

1、目前关卡数据是通过游戏资源接口返回的,因为接口有缓存,所以要先删除游戏:

image

2、重新进入游戏,可以发现游戏的关卡接口只返回了关卡id,再通过关卡id去请求关卡数据:

image

3、关卡数据是通过游戏资源接口请求的,会被缓存到本地,第二次进入游戏就不会再请求了:

image

4、查看游戏关卡返回的数据,可以发现一个叫blockTypeData的字段:

image

研究发现该字段记录了方块类型所对应的组数,比如"13": 2表示类型13的方块有2组,因为一组有3个方块,所以游戏里会出现2*3=6个类型13的方块。

以下是所有方块类型的说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"1": "青草",
"2": "胡萝卜",
"3": "玉米",
"4": "树桩",
"5": "草叉",
"6": "白菜",
"7": "羊毛",
"8": "刷子",
"9": "剪刀",
"10": "奶瓶",
"11": "水桶",
"12": "手套",
"13": "铃铛",
"14": "火堆",
"15": "毛球",
"16": "干草"
}

根据上面的类型对照表可以发现,游戏将会出现6个萝卜,3个树桩,以及6个铃铛,如图所示:

image

那为什么会看到3个青草呢?由levelData字段可知,方块一共有9+9=18个,而blockTypeData里面只有5*3=15个方块,缺少了3个。
所以第一关会自动给最上面的3个方块添加青草,猜想是为了方便新手点击消除,所以直接写死3个青草方块。

5、接下来试试把blockTypeData的消除次数改为0,看看会发生什么事:

image

可以看到方块都是空白的,没有填充图片了,除了自动添加的3个青草。
而3个相同的空白方块也是可以消除的,这就给第二关的作弊提供了思路。

6、考虑到第二关有十几个方块,如果改数量的话太麻烦,所以试试把blockTypeData改名,让游戏读不到这个字段,方块数量就相当于为0了:

image

果然是可行的,那么最简单的方法就是将blockTypeData改名。

三、修改步骤

Charles可以使用Rewrite功能来重写接口数据,具体步骤如下:

1、点击Charles的菜单打开Rewrite面板:

image

2、点击左下方的Add按钮新建一个Rewrite配置:

image

3、点击上边的Add按钮添加要重写的域名和路径:

image

4、Host填写cat-match-static.easygame2021.comPath填写*maps*,注意要加星号:

image

5、点击下边的Add按钮新建重写规则:

image

6、Type选择BodyWhere选择ResponseMatch填写blockTypeDataReplace填写clockTypeData,只改动了一个字符:

image

7、填写完毕:

image

8、为了重新请求游戏资源接口,需要先删除游戏:

image

9、重新进入游戏,游戏接口返回的blockTypeData都会被修改为clockTypeData,这样就完成了只通过修改一个字符就达到作弊的功能:

image

10、接下来就可以在别人面前玩游戏,跟别人说只有聪明的人才能看到方块的图案了。

评论