Skip to content

抓包测试1

https://mp.weixin.qq.com/s/jlFGQjA9Gn7wqY3B84HfGw

手机上连接代理

在手机WiFi中配置手动代理,输入安装Charles的电脑的网络地址,端口填8888。(注意:手机WiFi要和电脑同一个哦)

1
2
3
4
ifconfig 
    ...
    inet 192.168.31.112 netmask 0xffffff00 broadcast 192.168.31.255
    ...

连接 192.168.31.112,端口 8888

手机安装证书

以IOS为例,在Safri上打开Charles的根证书下载网址:chls.pro/ssl 。

接下来,在设置->通用->VPN与设备管理 选择刚才的证书进行安装。

然后,在设置->通用->关于本机->证书信任设置 (这一步很重要) 刚刚安装的证书的开关打开信任就可以抓取加密包了。

https://cat-match.easygame2021.com

Map local

地图请求内容:

https://cat-match.easygame2021.com/sheep/v1/game/map_info_ex?matchType=3&req_id=6

除了 req_id 每次重新挑战会变,其他参数不变
所以我们如果知道下一次 req_id,那么就可以 map 请求

例如

/Users/nocilantro/tmp/test.json:

1
{"err_code":0,"err_msg":"","data":{"map_md5":["046ef1bab26e5b9bfe2473ded237b572","046ef1bab26e5b9bfe2473ded237b572"],"map_seed":[2170714386,2170714386,2170714386,2170714386],"map_seed_2":"1661371954","req_id":6}}

我们将 map_md5 中的第一个字符串改成和第一个字符串一样,那么第二关就和第一关一样简单

Map remote

这里 map 了 personal_info 将 win_count 设置为 20,就可以在排行榜上看到自己是第一了

 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
dic = {
    "err_code": 0,
    "err_msg": "",
    "data": {
        "register_time": 1667615205,
        "avatar": "https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83epT9tfQV7t4P1DiaqNIib4I31vwcAsPxEuyiaYq66cPNNVNJc60TD02Ke4TLXOjLI1HZBIzJuWOsAhuQ/132",
        "nick_name": "hhhh",
        "uid": "6365c9e5c4da7f0fc67c284c",
        "challenge": 0,
        "win_count": 20,
        "daily_count": 0,
        "topic_count": 0,
        "today_state": 1,
        "today_ts": 1668435327,
        "today_time": 170,
        "today_fail_count": 3,
        "skin": 2,
        "area_id": 0,
        "area_expire_at": 0
    }
}

import json
from flask import make_response, Flask
app = Flask(__name__)

@app.route('/')
def roo():
    response = make_response(json.dumps(dic))
    response.mimetype = 'application/json'
    return response


app.run(debug=True, host='0.0.0.0', port=8001)