点击上方“咸鱼学Python”,选择“加为星标”
第一时间关注Python技术干货!
建议收藏 | 最全的 JS 逆向入门教程合集
IGh0dHBzOi8vd3d3LmFxaXN0dWR5LmNuLw0K
这个网站的加密比较简单的,网上也有不少关于这个网站加密的分析例子,所以关于这个网站的正文加密,这里不做分析。
不过这个网站最近更新了一个比较有意思的反爬。
所以今天简单看看这个网站的反爬措施。
去年,咸鱼写过一篇关于某网站的无限 debugger 的样例分析,感兴趣的可以看看之前的分析文章。
JS逆向 | 无限Debugger之淘大象
除了这类 debugger 样例外,还有一类反调试的样例是通过时刻监控浏览器的控制台是否打开来控制数据接口的读取的。
现在我们来看看。
首先访问目标网站,直接打开控制台【图2-1】:
图2-1打开控制台后,原有加载好的页面替换成上图显示的内容了。
我们简单猜测可以知道,网站应该是做了关于控制台检测。
为了知道这个检测代码在哪,可以通过source
面板中加载的内容来找找看,打开source
面板,找到首页的源码。
可以看到在首页代码结尾的地方【图2-2】,有上面这样的一段代码。
图2-3并且在【图2-3】所示位置用判断语句用来控制页面的加载。
并且在通过检索,我们找到了endebug
的代码。【图2-4】
解密出来的明文中的确是对控制台的状态进行了检测。【图2-5】
图2-5我们可以直接使用置空法将这个endebug
方法置空,至于其他形式的debugger可以看看【总结】部分的介绍。
当【图2-2】中的方法为空的时候,debugflag
的值就是 false
,那么在接下来的判断中,就会执行loadTab
方法了。
在之前遇到的debugger
反爬中,我们都是直接在console
中直接使用function 方法名(){}
这样的代码置空方法的。
同样的方法咸鱼也来试一试。
在console
中置空endebug
后,发现页面还是没有加载出来,那么问题出在哪里呢?
我们来回忆一下正常的无限debugger
场景:一个无限循环的方法中包含了可以被执行的debuger
语句,我们通过置空法是下次循环要执行的debugger
语句(说明下次循环的debug还未执行)替换为空了。
再来看看我们这个例子,endebug
在页面加载的时候就已经完成了调用执行了,和我们在正常的无限debugger
场景完全不同,所以为了创建一样的执行条件,我们需要在endebug
没有被调用前就将它重新定义为空。
所以如【图3-1】所示,我们在endebug
前打上断点,并置空函数。
这样页面就可以正常分析了。
关于这个 debugger 的调试分析样例还有很多,在我们夜幕的Javascript
逆向课程中对常见的几种情况以及解决方案都做了详细的分析与解答,感兴趣的可以扫码了解一下。
同时这里也感谢「花哥」 对我的帮助以及对本次案例提供的技术支持与解答。
撒花!
[ 完 ]
留言赠书
今日赠书:《机器学习入门:基于数学原理的Python实战》
赞助商:北京大学出版社
《机器学习入门:基于数学原理的Python实战》理论性与实用性兼备,既可作为初学者的入门书籍,也可作为求职者的面试宝典,更可作为职场人士转岗的实用手册。本书适合需要全面学习机器学习算法的初学者、希望掌握机器学习算法数学理论的程序员、想转行从事机器学习算法的专业人员、对机器学习算法兴趣浓厚的人员、专业培训机构学员和希望提高Python编程水平的程序员。
上期获奖读者
恭喜读者 @永远的爱 获得技术书籍一本。
请添加咸鱼微信:zangai1073536931,私信收件人信息。
今日留言主题
说说复工以来,最让你崩溃的事情。
喜欢文章,点个在看