接口

先重定向第二关的请求接口到第一关,开始游戏,所有关卡变成第一关,手动通关后抓包到通关接口

1
http://cat-match.easygame2021.com/sheep/v1/game/game_over?rank_score=1&rank_state=1&rank_time=15&rank_role=1&skin=1

token

获取token始终没找到请求记录,于是通过对咩咩羊-羊了个羊小工具的逆向工程得知以下过程:

游戏先请求user_info接口查询uid对应用户信息,然后通过响应的wx_open_id请求login_oppo接口获取token

uid在游戏右上角设置里

脚本

修改次数和uid就可以跑了:

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
42
43
44
import requests, json
from threading import Thread

# 通关次数
num = 100000
# uid
uid = 你的uid

print(f"用户uid: {uid}\n通关次数: {num}")

# 获取用户open_id
r = requests.get(
f"https://cat-match.easygame2021.com/sheep/v1/game/user_info?uid={uid}",
headers={
"t": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTAwMjA0MDIsIm5iZiI6MTY1ODkxODIwMiwiaWF0IjoxNjU4OTE2NDAyLCJqdGkiOiJDTTpjYXRfbWF0Y2g6bHQxMjM0NTYiLCJvcGVuX2lkIjoiIiwidWlkIjoxMDAwMDEsImRlYnVnIjoiIiwibGFuZyI6IiJ9.NQZAWBLYtq6hBff9YjNcaI2Soa6Z5vwbIU7YnjP1KBQ",
},
)
wx_open_id = json.loads(r.text)["data"]["wx_open_id"]

# 获取用户token
r = requests.post(
"https://cat-match.easygame2021.com/sheep/v1/user/login_oppo",
data={"uid": wx_open_id, "nick_name": "14633282", "avatar": "123123123", "sex": 1},
)
token = json.loads(r.text)["data"]["token"]


def j(i):
r = requests.get(
url="http://cat-match.easygame2021.com/sheep/v1/game/game_over?rank_score=1&rank_state=1&rank_time=15&rank_role=1&skin=2",
headers={
"Cookie": f"t={token}"
},
)
if json.loads(r.text)["err_code"] == 0:
print(f"{i}次通关")
else:
print(f"第{i}次通关失败!")

for i in range(num):
t = Thread(target=j, args=[i])
t.start()


image-20220919163749652

⬆︎TOP