js逆向-猿人学(15-16)wasm-webpack

2021-11-22 13:59:09 浏览数 (1)

猿人学爬虫第十五题《备周则意怠-常见则不疑》

地址: 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}"
猿人学爬虫第十六题《webpack

地址: 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)

0 人点赞