意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

猿人学十五题

来源:恒创科技 编辑:恒创科技编辑部
2024-01-01 06:58:59
1.首先抓包可以发现请求里有一个m参数是变化的

2.调用堆栈跟进去

3.m的生成位置非常明显


猿人学十五题

需要注意的点是这里边调用了.wasm文件的encode方法,百度了一下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))

上一篇: 企业邮箱使用python发邮件(企业邮箱使用规范) 下一篇: 利用 Python 进行数据分析 —— 1 数据结构、函数和文件