关于某解析站的无限Debugger的分析
目标网站
aHR0cDovL3FxZTIuY29tL1ZpZGVvL2RlZmF1bHQuaHRtbA==
今天要分析的是一个视频解析网站,这一类网站大多都是借用别人写好的视频解析接口,再套上自己的 UI 就是一个新的解析站了,所以有时候解析服务一挂,很多类似的网站都用不了,而且这类解析的网站一般都有法律风险,不建议私自搭建(律师函警告
)
我们今天主要是分析这个网站的反爬措施,看下有没有值得学习的地方。
网站反爬分析
打开控制台会遇到第一个反爬。
可以看到这里是一个无限的 debugger 循环。【图1-1】
对应着右侧的堆栈【图1-2】
可以看到这个 vm 的代码是由这里的xxxx.js:3973
中的代码执行出来的,所以来看看这行代码都做了哪些事情。【图1-3】
这里用到的是浏览器的console
面板,通过逐一将代码粘贴到console
中执行,可以看到这里构造了一个debugger
字符串。【图1-4】
图1-4
那么这个debugger
字符串又是怎么被执行的呢?我们把关注点放到construtor
上。
通过搜索引擎,我们可以得到下面的结论。
constructor是一种用于创建和初始化
class
创建的对象的特殊方法。
结合整行的混淆代码,可以大致得出这样的一个结论,这一行的混淆代码通过constructor构造了一个执行 debugger 的函数。
那么面对这样的debugger
应该怎么办?
其实面对这样的反爬,同样可以使用置空法
完成。不过之前我们遇到是将整个函数置空,这里是将construtor
置空。
通过在console
中键入Function.prototype.constructor=function(){}
即可完成。【图1-4】
输入这个之后,点击屏幕中的蓝色箭头就可以正常调试了。
---------------------
作者:煌金
来源:CSDN
原文:https://blog.csdn.net/weixin_43189702/article/details/104624220?fps=1&locationNum=2
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件