补环境
网址: aHR0cHM6Ly95LnFxLmNvbS9uL3J5cXEvcGxheWVy
逆向接口: aHR0cHM6Ly91LnkucXEuY29tL2NnaS1iaW4vbXVzaWNzLmZjZz9fPTE2NzUzMDgwODEzODUmc2lnbj16emJjN2ZkMzU1NnF4Y253emtxbmd2a2xwenJ3YncyN2EzZmJiMQ==
逆向参数sign
直接xhr断点
跟栈到L 发现sign已经生成了
i = "GET" === t.type.toUpperCase() ? o(t.data.data) : o(t.data),
t.url = A({
sign: i
}, t.url)
}
i是一个三元表达式
分析一下 o方法 跟栈进去 果然是vmp
先把所有的代码拿下来 定位 o方法 抠出想要的代码
浏览器运行
试着运行一遍 果然报错了, 报错内容也看不懂
看了一眼发现是vmp
直接在 String.fromcharcode(n[t++])插桩
逐步分析就行
补一点点环境就可以运行
检测点:
define
global
window
navigator
Headless
userAgent
location
host y.qq.com
检查:浏览器加密值 zzb0d90bef3nsemfyozmajih4mpkdgoa5aa01932
v8执行值:zzb0d90bef3nsemfyozmajih4mpkdgoa5aa01932
补完
node运行解决方案:
1: vm2运行
2: window=global, (插桩发现检测, 实际上并没有什么卵用)
3: 调用jsdom
代码如下:
const {JSDOM} = require("jsdom");
const dom = new JSDOM("<!DOCTYPE html><p>Hello world</p >", {url: 'https://y.qq.com/'});
window = dom.window;
完美解决
算法还原
插桩分析日志
然后观察日志js还原 就几十行 ,那就顺便python还原了吧
![](https://img-blog.csdnimg.cn/img_convert/b9a345a003f75224cbeae40bc1858589.png)
就这么点,主要是怕给完整代码找我麻烦