admin 管理员组

文章数量: 887006

猿人学第十五: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 randomdef 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 = "="+ str(m) +"&page="+ str(page)response = requests.get(url, headers=headers).json()for value in response["data"]:number.append(value['value'])print(sum(number))

本文标签: 猿人学第十五wasm问题