建议收藏 | 最全的 JS 逆向入门教程合集
目标网站
aHR0cDovL3FxZTIuY29tL1ZpZGVvL2RlZmF1bHQuaHRtbA==
今天要分析的是一个视频解析网站,这一类网站大多都是借用别人写好的视频解析接口,再套上自己的 UI 就是一个新的解析站了,所以有时候解析服务一挂,很多类似的网站都用不了,而且这类解析的网站一般都有法律风险,不建议私自搭建(律师函警告图片)
我们今天主要是分析这个网站的反爬措施,看下有没有值得学习的地方。
网站反爬分析
打开控制台会遇到第一个反爬。
可以看到这里是一个无限的 debugger 循环。【图1-1】
图1-1
对应着右侧的堆栈【图1-2】
图1-2 可以看到这个 vm 的代码是由这里的xxxx.js:3973中的代码执行出来的,所以来看看这行代码都做了哪些事情。【图1-3】
图1-3
这里用到的是浏览器的console面板,通过逐一将代码粘贴到console中执行,可以看到这里构造了一个debugger字符串。【图1-4】
图1-4
那么这个debugger字符串又是怎么被执行的呢?我们把关注点放到construtor上。
通过搜索引擎,我们可以得到下面的结论。
constructor是一种用于创建和初始化class创建的对象的特殊方法。
结合整行的混淆代码,可以大致得出这样的一个结论,这一行的混淆代码通过constructor构造了一个执行 debugger 的函数。
那么面对这样的debugger应该怎么办?
其实面对这样的反爬,同样可以使用置空法完成。不过之前我们遇到是将整个函数置空,这里是将construtor置空。
通过在console中键入Function.prototype.constructor=function(){}即可完成。【图1-4】
图1-5
输入这个之后,点击屏幕中的蓝色箭头就可以正常调试了。
Love & Share
[ 完 ]