🕸️ 前言:为什么你要去“扣代码”?
做爬虫最痛苦的时刻,莫过于看着几万行混淆的 JS 代码发呆。
- 传统逆向:定位加密函数 -> 分析逻辑 -> 扣取代码 -> 补 Node.js 环境(补 Window, Document, Navigator…) -> 调试报错。
- RPC 逆向:定位加密函数 ->注入 RPC 钩子 -> Python 直接调用。
只要函数能在浏览器里跑,我就能调用它。管它是 Webpack 还是 VM2 混淆,在我眼里都是透明的。
今天,我们使用开源神器Sekiro来实现这一过程。
📡 核心原理:把浏览器变成“服务器”
RPC 的核心思想是“借刀杀人”。
既然浏览器已经加载了所有代码,也能正常计算加密参数,那我们为什么不直接利用浏览器这个现成的环境呢?
我们通过 WebSocket 在浏览器和本地服务器之间建立一条长连接。Python 发送参数(如密码),浏览器接收后执行加密 JS 函数,把结果传回给 Python。
RPC 调用链路图 (Mermaid):