猿人学第十五:wasm问题

第十五题是 备周则意怠 常见则不疑

还是数值求和
控制台抓包,看参数 还是加密的 m 参数
在这里插入图片描述
惯例去查找m加密的方式

打开请求调用堆栈 ,点击request后面的链接 进行链接跳转
在这里插入图片描述
跳转后:
在这里插入图片描述
m就是window.m,控制台 打印一下?
在这里插入图片描述
就是我们需要的东西,然后就去浅分析一下加密方式
ctrl+f 搜索一下 window.m
如下:
在这里插入图片描述
return 的正是需要的数据,
t1 和 t2 已经在上面给出了
只需要转换为相对应的python语言即可:

    t = time.time()
    t1 = int(t/2)
    t2 = int(t/2 - math.floor(random.random()*50+1))

就是一个时间戳的简单加密
t1和t2组成了加密的后半段 用了||隔开
第一部分window.q以他两为参数 我们继续找
在这里插入图片描述

啊 就在上面,window.q = instance.exports.encode;
这是啥意思呢? 我也不太清楚 百度一下,最后说是wasm加密,,具体自己百度吧,不常见 但是要懂。。
用对应得wasm文件来执行即可
对应的wasm文件在控制台就有返回 直接下载即可。。。
下面是代码咯

import requests
import pywasm
import time
import math
import random

def getM():
    t = time.time()
    t1 = int(t/2)
    t2 = int(t/2 - math.floor(random.random()*50+1))
    vm = pywasm.load("./main.wasm")
    r = vm.exec("encode", [t1, t2])
    return f"{r}|{t1}|{t2}"

if __name__ == '__main__':
    number = []
    headers = {
        'user-agent':'yuanrenxue.project',
        'cookie': '???'
    }
    for page in range(1,6):
        m = getM()
        url = "https://match.yuanrenxue.com/api/match/15?m="+ str(m) +"&page="+ str(page)
        response = requests.get(url, headers=headers).json()
        for value in response["data"]:
            number.append(value['value'])
    print(sum(number))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独角兽小马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值