共计 705 个字符,预计需要花费 2 分钟才能阅读完成。
1. 首先抓包能够发现申请里有一个 m 参数是变动的
2. 调用堆栈跟进去
3.m 的生成地位非常明显
须要留神的点是这里边调用了.wasm 文件的 emcode 办法, 百度了一下 python 有一个 pywasm 库能够调用此文件, 将 wasm 文件下载到本地调用
代码示例
import requests
import time
import math
import random
import pywasm
from urllib import parse
vm = pywasm.load("./main.wasm")
def get_m():
t1 = int(int(time.time())/2)
t2 = t1 - math.floor(random.random() * (50) + 1)
result = vm.exec("encode", [t1, t2])
return str(result) + '|' + str(t1) + '|' + str(t2)
headers = {
"User-Agent": "yuanrenxue.project",
"cookie":"sessionid= 你的 sessionid"
}
if __name__ == '__main__':
num_list = []
for i in range(1,6):
url = "https://match.yuanrenxue.com/api/match/15?m={}&page={}".format(parse.quote(get_m()),i)
r = requests.get(url, headers).json()
for data in r['data']:
num_list.append(int(data['value']))
print(sum(num_list))
正文完