内容仅供参考学习
F12打开游览器开发者工具,然后点击第二页获取一次请求:

一般可以先看一下request headers中有没有什么特殊的字符串,这边没有就先直接跳过。看一下请求参数里面,有个m加密参数。

这种m一个字母命名的一般不建议去搜索了,找起来也非常的麻烦。
点击Initiator,随机选个节点。

进入断点处,发现找不到什么有用信息,

这里我们可以直接选择上一个节点看:

在这里我们发现加密字段已经出来了, 断点地方往上看,d=k.url,而k 是从b这边来的,且b中已经存在m的值,所以,这里也不是加密的位置:

到了request这个节点,这里面混惨了混淆(部分编码了):

想方便看的化可以把代码复制然后去处理一下(推荐一个网址:http://www.cnlans.com:8887]), 然后用reres替换。
进入打上断点发现m的生成和window.f是m前半段,且经过几次尝试,在这个oo0O0(_0x2268f9['\x74\x6f\x53\x74\x72' + '\x69\x6e\x67']())方法结束后里window.f的值产生或者说变化了,_0x2268f9['\x74\x6f\x53\x74\x72' + '\x69\x6e\x67']()就是当前时间戳转了一下字符串:


即 m = window.f + ’ | ’ + 10位时间戳
现在就需要寻找window.f了
将鼠标悬浮在oo0O0方法上,进入方法的位置:

我们发现这个js代码被嵌入在这行里面了,我们把他抠出来,格式化一下存在本地:

直接输出window.f,报错,说明缺少环境,我们在开头添加一下环境, 部分加密值可以在页面获取:

最后需要补全的字段有:
window = {};
window.a = '内容太多,此处省略'
document = {
"e": "fromC",
"f": "charCo",
"g": "harCode",
"h": "deAt",
};
window.c = 5
模拟一下前面加密出现的步骤:

然后最终结果出来了,但是我们在python中用execjs是无法直接调用这个方法的,因为里面有特殊编码是python无法处理的(我没找到解决办法):

不过却找到了其他解决办法:

我们在这里打断点,然后我们输出atob(window['b'])[J('0x0', ']dQW')](J('0x1', 'GTu!'), '\x27' + mw + '\x27') 我们可以得到一串js代码字符串,我们格式化取出:

这个结尾给告诉我们window.f就是这个hex_md5函数运行后返回的值, 并且结合代码我们可以知道hex_md5里面的一串字符就是前面atob(window['b'])[J('0x0', ']dQW')](J('0x1', 'GTu!'), '\x27' + mw + '\x27')中的mw,且为一开始我们传递进去的时间戳。即代码可以转换为:
