0.游戏介绍

羊了个羊是最近突然爆火的微信小程序里面的三消小游戏。因为游戏设计的难度很高,许多人用道具都无法过关,从而导致很多人都在玩。但是因为其是完全随机生成,所以大多数都是根本无法通关的死局。于是我便尝试去抓包来修改其关卡。

1.抓取关卡数据

这里我使用的工具是Http Debugger来抓取数据。首先我们利用电脑版微信打开羊了个羊小程序,然后随便开一局。我们就可以发现下面两个Get请求:

这两个Get请求便是请求关卡信息的,其中mapid就是关卡数字,80001是第一关,90018是第二关(第二关的数字是会随着日期变化的,因为每天一关,所以应该是对应的日期)。所以我们只需要修改其相关的数据即可修改相应的关卡。所以我们来分析一下内容:

Content里面是一个很简单的json格式的配置,就只有一个data应该是地图数据, err_codeerr_msg是用来记录错误的,与我们需要的没关系。

2.修改关卡数据

既然我们知道了相应关卡的数据在哪,那么只需要修改对应关卡的数据即可。几天前所有的关卡数据都是在get请求中传输的,但是最近更新了以后只有一串字符串了。但是我们只需要将第二关的data换成第一关的data,那么第二关就会和第一关一样了。

所以我们在Http Debugger上面增加一条Auto Reply:把第二关的get请求自动回复成第一关的data即可:

9月20日关卡获取逻辑更新,附新方法:

首先修改的整体思路还是不变的,只不过内容改变了需要重新修改。

如图,找到/sheep/v1/game/map_info_ex?matchType=3的请求,然后查看其内容,把map_md5列表的第二个替换为第一个对应的md5,map_seed列表的后两个替换为前两关的数字,然后作为自动回复规则即可。

3.通关游戏

此时我们重新进入游戏即可发现第二关的数据和第一关一模一样了,于是便可以随便通关了。

4.排名数据刷取

通关了以后我们可以看到一条post请求为game_over的get请求,这个便是增加通关次数的请求,所以此时我们只需要多次请求就可以增加我们的排名数据。