JS逆向实战:WASM逆向技巧与实战应用全解析
引言
大家好,还是原来的爬虫练习平台,本文重点讲 wasm 调用分析。
spa14
spa14 地址:https://spa14.scrape.center/
spa14 说明:
电影数据网站,数据通过 Ajax 加载,数据接口参数加密且有时间限制,加密过程通过数值型 WASM 实现,适合 WASM逆向分析。
这次不是前端渲染了,我们看下接口请求了什么数据。
一个正常的请求分页数据的接口,只不过多了一个 sign
字段,是一个校验值,可能是一个哈希值或者加密的数据。
还是老方法,下 XHR 断点,然后翻页看下请求断在哪里。
我们主要关注两个地方,右上角断点的位置是不是对的,是不是在我们想要的链接上断下的,还有就是右下角的调用栈,主要观察比较可疑的函数调用,这里根据经验我推断可能的 sign
计算逻辑在 onFetchData
上。
切换到 onFetchData
上,可以看到 e
变量就是 sign
字段的值,e
是通过 wasm
变量的 encrypt
加密得到的,查看一下入参都有什么。
可以看到,一共两个入参,一个是 offset
字段,一个是时间戳字符串转成 int
型。现在入参有了,wasm 文件我们找一下。
找到了 wasm 文件,现在将它下载下来,连同刚才找到的加密函数和入参,我们尝试本地调用。
1 | import time |
可以正常获取结果,说明本地调用 wasm 是成功的。
最终代码见:https://github.com/libra146/learnscrapy/tree/main/js/spa14
总结
wasm 调用起来还是比较简单的,主要是因为传参是整型的原因,如果想要传入字符串参数,就比较复杂了,下一篇文章我们来讲解如何传入字符串参数。
最后,今天是阴历二十九,算是过除夕了,在这里也祝大家蛇年大吉,新春快乐!来年继续卷哈哈哈
本文章首发于个人博客 LLLibra146’s blog
本文作者:LLLibra146
更多文章请关注公众号 (LLLibra146):
版权声明:本博客所有文章除特别声明外,均采用 © BY-NC-ND 许可协议。非商用转载请注明出处!严禁商业转载!