当前位置: 首页 > news >正文

猿人学第十五题—wasm的分析处理

1. 链接

https://match.yuanrenxue.cn/match/15

2. 抓包分析

2.1. 请求分析

只有一个m值参数

这里直接选择跟栈:

往上面一看,这就是我们想要的值:

3. 逆向分析

3.1. window.q

这个window.q有点意思,一点进去,发现是这样的!

其实这就是wasm!

3.2. wasm

什么是wasm?

WASM(WebAssembly) 是一种在浏览器中运行的 高性能、低级别的二进制代码格式,它让你可以用如 C/C++、Rust 等语言编写程序,然后编译后在网页上运行,就像 JavaScript 一样。

WASM 是让“非 JavaScript 语言”也能跑在网页上的技术,而且跑得还很快!

那么这种该如何做呢?

一般流程是:找到wasm文件,然后通过python的pywasm模块去加载这个wasm模块,然后调用里面的函数:

下载下来:

然后调用它,可以看到上面的window.q调用的是wasm里面的encode方法:

# 初始化 Runtime 实例
runtime = pywasm.core.Runtime()# 加载并实例化 WebAssembly 模块
m = runtime.instance_from_file('main.wasm')# 调用 WebAssembly 模块中的函数 'encrypt',传入参数 [100, 30]
r = runtime.invocate(m, 'encode', [t1, t2])res = r[0]
# 打印结果
print("结果:", res)  # 输出应该是计算的结果

4. 完整代码

import base64
import math
import random
import re
import timeimport httpx
import pywasm
import requestsfrom CoreUtils.ua import get_random_ua
from CoreUtils.Encrypt import md5_encrypt
import execjsdef get_m():t1 = int(time.time() // 2)t2 = t1 - random.randint(1, 50)# print(tt)# 设置日志级别(可选,调试使用)pywasm.log.lvl = 0# 初始化 Runtime 实例runtime = pywasm.core.Runtime()# 加载并实例化 WebAssembly 模块m = runtime.instance_from_file('main.wasm')# 调用 WebAssembly 模块中的函数 'encrypt',传入参数 [100, 30]r = runtime.invocate(m, 'encode', [t1, t2])res = r[0]# 打印结果print("结果:", res)  # 输出应该是计算的结果m = f"{res}|{t1}|{t2}"return mdef get_resp(page):ua = get_random_ua()  # 假设你有这个函数tt = str(int(time.time()) * 1000)cookies = {'sessionid': '10zwpnj1ljclbht04s41inzgtnpntrzt','Hm_lvt_c99546cf032aaa5a679230de9a95c7db': '1746770541,1746776721,1746846259,1746860209','qpfccr': 'true','no-alert3': 'true','tk': '8683284781106509632','Hm_lvt_9bcbda9cbf86757998a2339a0437208e': '1746770631,1746776739,1746846273,1746860215','Hm_lpvt_9bcbda9cbf86757998a2339a0437208e': '1746865984','Hm_lpvt_c99546cf032aaa5a679230de9a95c7db': '1746866000',}headers = {'accept': 'application/json, text/javascript, */*; q=0.01','accept-language': 'zh-CN,zh;q=0.9','cache-control': 'no-cache','pragma': 'no-cache','priority': 'u=0, i','referer': 'https://match.yuanrenxue.cn/match/15','sec-ch-ua': '"Chromium";v="136", "Google Chrome";v="136", "Not.A/Brand";v="99"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"','sec-fetch-dest': 'empty','sec-fetch-mode': 'cors','sec-fetch-site': 'same-origin','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36','x-requested-with': 'XMLHttpRequest',# 'cookie': 'sessionid=10zwpnj1ljclbht04s41inzgtnpntrzt; Hm_lvt_c99546cf032aaa5a679230de9a95c7db=1746770541,1746776721,1746846259,1746860209; qpfccr=true; no-alert3=true; tk=8683284781106509632; Hm_lvt_9bcbda9cbf86757998a2339a0437208e=1746770631,1746776739,1746846273,1746860215; yuanrenxue_cookie=1746865017|eTaV5AJKegKnKYfGQkZBz0IkEQ1Al6yot92jsrkkRDN5Z1Ffyuym4y2EChtU4GXz5KCxO8pTHSHIQHgbHlpjEUZr05GUF8FdiA80; Hm_lpvt_9bcbda9cbf86757998a2339a0437208e=1746865984; Hm_lpvt_c99546cf032aaa5a679230de9a95c7db=1746866000',}m = get_m()params = {'m': m,'page': page,}response = requests.get('https://match.yuanrenxue.cn/api/match/15', params=params, cookies=cookies, headers=headers)print(response.json())return response.json()def parse_data(data):nums = data['data']res = []for i in nums:res.append(i['value'])return resif __name__ == '__main__':res = []session = requests.Session()for i in range(1, 6):data = get_resp(str(i))nums = parse_data(data)res.extend(nums)print(sum(res))

相关文章:

  • Python训练营打卡DAY21
  • Win11安装APK方法详解
  • 【基础IO下】磁盘/软硬链接/动静态库
  • RAG与语义搜索:让大模型成为测试工程师的智能助手
  • C++中线程安全的对多个锁同时加锁
  • 渠道销售简历模板范文
  • Java线程池深度解析:从使用到原理全面掌握
  • 向前传播(forward)和反向传播
  • 简单网络交换、路由二
  • Python 对象引用、可变性和垃圾 回收(变量不是盒子)
  • Java游戏服务器开发流水账(4)游戏的数据持久化
  • 【Langchain】根据LCEL规范实现Runable interface
  • 精品,第22章 Python3 数据类型与文件操作详解
  • Kubernetes资源管理之Request与Limit配置黄金法则
  • 科大讯飞TTS(文字转语音)和STT(语音转文字)
  • ragflow报错:KeyError: ‘\n “序号“‘
  • VTK-B 人工智能采集单元选型与配置原理说明
  • printf调试时候正常,运行时打印不出来
  • LAMMPS分子动力学基于周期扰动法的黏度计算
  • 【Bluedroid】蓝牙 HID 设备服务注册流程源码解析:从初始化到 SDP 记录构建
  • 让胖东来“自闭”的玉石生意,究竟水有多深?
  • 社恐也能嗨起来,《孤独摇滚》千人观影齐舞荧光棒
  • 航行警告:渤海海峡黄海北部执行军事任务,禁止驶入
  • 网络主播直播泄机密,别让这些“小事”成威胁国家安全的“突破口”
  • 马云再次现身阿里打卡创业公寓“湖畔小屋”,鼓励员工坚持创业精神
  • 沃旭能源因成本上升放弃英国海上风电项目,或损失近40亿元