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

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


了解详情 >

⼀、⼯具准备

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

二、修改原理

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

image

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

image

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

image

4、根据前面的作弊教程《作弊教程三:皇帝的新羊》可知,blockTypeData返回了方块图案对应的组数,如果将数量改为0后,方块就全部变成空白的。那么反过来的话,如果将其中某个图案的值改得很大,那所有方块基本都会被这个图案填充。

游戏的逻辑是将所有图案放在一个数组里打乱,再按顺序从数组里取图案,假如一局游戏有300个方块,我将其中一个图案改成300万个,游戏就会将存有300万个元素的数组打乱,前300个元素是相同的概率非常大,不成功的概率几乎只有万分之一。

可能有人会说,这样是有概率会失败的,确实有很小的概率会失败,但这个概率比原版游戏的通关概率大多了。如果300万个不够,那就改成3000万个。

5、由方块类型对照表可知,青草的类型为1:

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

那么只要将blockTypeData里青草的数量改掉就行。

三、修改步骤

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填写"1":\d+,勾选上RegexReplace填写"1":1000000

image

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

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

image

6、重新进入游戏,青草的个数由原来的7变成了1000000,这样就完成了只通过修改一个数字就达到作弊的功能:

image

7、可以看到方块都变成了青草:

image

评论