🐍 查看v1版本 🐍
-
GET /sheep/v1/game/map_info_ex?matchType=3
拿到 map_md5 和 map_seed
-
POST /sheep/v1/game/game_over_ex?
提交 MatchPlayInfo
用户完成游戏,小程序算出MatchPlayInfo的后,发起game_over请求
v2/index.js, 关键代码:
MatchPlayInfo() --> for (var o = 0; o < t.stepInfoList.length; ++o) c.protocol.MatchStepInfo.encode(t.stepInfoList[o], e.uint32(34).fork()).ldelim(); --> case 1-4: ...
var f = {
gameType: g.default.getInstance().gameType,
stepInfoList: p
}
y = k.protocol.MatchPlayInfo.create(f)
v = k.protocol.MatchPlayInfo.encode(y).finish()
b = "", _ = 0; _ < v.length; _++) b += String.fromCharCode(v[_]) <-- MatchPlayInfo = base64(b)
MatchPlayInfo() 函数的输入有且仅 gameType , mapId , mapSeed, stepInfoList
crack 尝试瞬间完成挑战:
-
先请求一次挑战,拿到mapSeed
-
将mapSeed带入运算, 得到MatchPlayInfo, 发起game_over , 跳过游戏过程
-
code:
import base64 pass ...晚点