python爬虫之wasm逆向 wasm逆向 超详细
2021/11/18 17:12:15
本文主要是介绍python爬虫之wasm逆向 wasm逆向 超详细,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言:wasm简介,在js逆向中,遇到wasm加密,wasm是通过字节码以二进制格式传输,由于模块的结构,可以通过浏览器并行编译,以便进一步加快速度。
一.问题:
在请求链接上,发现有签名,咋一看像个时间戳进行处理后的数据。
二.解决:
1.全局搜索sign(定位技巧),轻松找到sign,向上看使用$wasm进行加密。
2.在谷歌中可以看见wasm源码,在火狐中看到就是base64编码,解码后看到的是一串乱码。
谷歌查看:
火狐查看:
3.先把wasm文件下载下来。
def get_wasm(): url = "https://xxxxxxxx/js/Wasm.wasm" response = requests.get(url).content with open("Wasm.wasm", 'wb') as fp: fp.write(response)
4.安装/导入第三方库pywasm ,pywasm 是一个使用纯 Python 实现的 WebAssembly 解释器。
# pip install pywasm import pywasm
5.再来分析js加密。
# js加密代码 var n = (this.page - 1) * this.limit, e = this.$wasm.asm.encrypt(n, parseInt(Math.round((new Date).getTime() / 1e3).toString())); # n就是翻页页码减1,再乘10 # parseInt(Math.round((new Date).getTime() / 1e3).toString())就是得到时间戳,取整,转为字符。
6.使用python代码复现。
import pywasm def get_sign(): for i in range(3): # 得到时间戳,取证 t = int(time.time()) # 读取wasm文件 vm = pywasm.load("./Wasm.wasm") # 执行加密 sign = vm.exec("encrypt", [i, t]) print(sign)
结束语:怅寥廓,问苍茫大地,谁主沉浮?
这篇关于python爬虫之wasm逆向 wasm逆向 超详细的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门