猿人学爬虫第十五题《备周则意怠-常见则不疑》
地址: http://match.yuanrenxue.com/match/15
逻辑很简单,但是到 instance.exports.encode 的时候搞不动了,发现引入了wasm
代码语言:javascript复制fetch('/static/match/match15/main.wasm').then(response =>
response.arrayBuffer()
).then(bytes => WebAssembly.instantiate(bytes)).then(results)
wasm地址:http://match.yuanrenxue.com/static/match/match15/main.wasm
python调用wasm的库: https://www.cnpython.com/pypi/pywasm
instance = results.instance; window.q = instance.exports.encode;
用python生成m:
代码语言:javascript复制import math
import random,time
import pywasm
t = int(time.time())
t1 = int(t / 2)
t2 = int(t / 2 - math.floor(random.random() * 50 1))
wasm = pywasm.load("main.wasm")
sign = wasm.exec("encode", [t1, t2])
m = f"{sign}|{t1}|{t2}"
地址: http://match.yuanrenxue.com/match/16
webpack之前遇到过很多次了,对于打了包的js,调试十分难受。
这个题还是给了我兴趣的,打开控制台就返回首页。
那么就用 XHR 来进行断点。因为访问接口是在跳转事件之前生成的,所以可以拦截并调试。
call stack 往下找 m参数
m = n[e(528)](btoa, p_s),
(btoa, p_s) 时间戳,先不看。
n[e(528)] = function(e, t)