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

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


了解详情 >

⼀、⼯具准备

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

二、修改原理

1、9月23号按照《作弊教程三:皇帝的新羊》教程把图案都改成空白的,消除了一半后发现中间出现了一些随机的图案:

image

多玩几次可以发现图案都是固定不变的,所以可以判断图案是写死的。

2、观察一下关卡数据,发现有少数方块的type值不为0:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"12": [{
"id": "12-40-48",
"type": 5,
"rolNum": 40,
"rowNum": 48,
"layerNum": 12,
"moldType": 1,
"blockNode": null
}, {
"id": "12-8-40",
"type": 6,
"rolNum": 8,
"rowNum": 40,
"layerNum": 12,
"moldType": 1,
"blockNode": null
}, {
"id": "12-16-8",
"type": 7,
"rolNum": 16,
"rowNum": 8,
"layerNum": 12,
"moldType": 1,
"blockNode": null
}, {
"id": "12-48-16",
"type": 8,
"rolNum": 48,
"rowNum": 16,
"layerNum": 12,
"moldType": 1,
"blockNode": null
}, {
"id": "12-52-44",
"type": 0,
"rolNum": 52,
"rowNum": 44,
"layerNum": 12,
"moldType": 1,
"blockNode": null
}, {

研究发现,type值对应着方块类型,如果type不为0,就使用对应的方块类型显示图案。如果type为0,就使用打乱后的图案填充。

3、所以如果修改返回的数据,把所有方块的type都改为一样的话,全部图案就相同了。

那么更进一步,如何把图案都改成空白呢?观察一下所有方块的类型:

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": "干草"
}

一共有16种类型,如果把type改成17,游戏找不到相应的图案来显示,方块就变成空白了。

三、修改步骤

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

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

image

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

image

3、点击上边的Add按钮添加要重写的网址,Host填写cat-match-static.easygame2021.comPath填写*maps*,注意要加星号:

image

4、点击下边的Add按钮新建重写规则,Type选择BodyWhere选择ResponseMatch填写"type":\d+,勾选上RegexReplace填写"type":17

image

这里出现的\d是正则表达式,表示任意数字,所以要勾选Regex

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

image

6、重新进入游戏,可以看到方块都变成了空白:

image

评论