还原之后,就变成了以下精简且易读的代码:
通过对多个 JavaScript 文件,如 slide.js/fullpage.js 等进行反混淆,我们对 JavaScript 的调用逻辑清晰了很多。
3. 代码解绑定
完成了代码反混淆,还有一个重要的工作,就是如何从 JavaScript 代码中抽离出关键的 JavaScript 代码,这些代码就是请求参数的加密逻辑。我将此过程称为“代码解绑定”。
这个过程并不需要什么技巧,需要的只是耐心,耐心,耐心。跟着 Chrome 浏览器,打断点分析请求的入口与出口,一步步将关键代码剥离出来。
比如,我们需要解出参数 a,那么就抽离出加密参数 a 的代码,封装成一个 get_a() 的函数。
封装了几个需要的 JavaScript 函数,我们可以在 Python 程序中,使用 PyExecJS 库,方便地执行 JavaScript 代码拿到加密参数。以下为一些示例代码: