Python 爬虫进阶必备 | 以 aqistudy 为例的无限 debugger 反调试绕过演示(附视频)
【摘要】 今日网站aHR0cHM6Ly93d3cuYXFpc3R1ZHkuY24v这个站是看到读者在其他群里问以为又改版了,所以打开瞅瞅本篇文章只演示反调试的绕过,其他内容之前文章讲过了。请自行翻阅 debugger 的绕过最后附视频演示打开网站,发现网站禁用了 F12 和 右键这样的反调试可以通过 Ctrl + Shift + i 打开控制台打开控制台之后看到提示debugger这样的 debug...
今日网站
aHR0cHM6Ly93d3cuYXFpc3R1ZHkuY24v
这个站是看到读者在其他群里问以为又改版了,所以打开瞅瞅
本篇文章只演示反调试的绕过,其他内容之前文章讲过了。
请自行翻阅
debugger 的绕过
最后附视频演示
打开网站,发现网站禁用了 F12 和 右键
这样的反调试可以通过 Ctrl + Shift + i
打开控制台
打开控制台之后看到提示debugger
这样的 debugger ,可以在堆栈里翻看上一层堆栈看看能否置空函数来防止进入 debugger
通过堆栈可以看到txsdefwsw
这个方法调用了debugger
这个方法是在首页调用的,试了下txsdefwsw = function(){}
发现还是会出现调用,再看堆栈,发现原来还有setInterval
循环调用了检测逻辑
可以看到上图的堆栈,最顶层是city_realtime.php
在这个堆栈里找到了两个eval
所以这个网站的整套逻辑我猜是下面这样的
1、请求目标网站
2、目标网站加载首页(首页中包含上图的两个 eval)
3、eval 中包含检测逻辑
4、访客打开控制台,被已经加载的检测逻辑检测,完成反调试
知道这个套路之后我们要这么反反调试?
1、本地代理这个首页,替换首页的eval
这个法子的工具用 Fiddler 或者 Reres ,用规则匹配到这个页面然后替换就好了,网上的资料很多或参考之前的文章
2、使用如下视频的方法调试,可以在 vm 的生命周期内不用理会 debugger
有读者试过视频中的方法,但是就是不行,这是为啥?
这里可能是忽略了一个小细节,这个可以在代码中找到答案
这里检测了 window 的内外长宽,当我们打开控制台,原有展示的页面就小了,所以只要把控制台调整成一个新的窗口就可以规避,接着使用视频展示的就可以了。
除此之外,还有读者好奇eval
里面的dxYKI84fjg
还有d1JR0RXxxgp
逻辑在哪,进不到具体逻辑里
可以像我这样在控制台输入函数名,然后点击回显的内容就可以自动跳到对应的逻辑了,这个方法适用于没有重写过toString
方法的函数。
关于 debugger 反调试的形式很多,但是检测的方法大同小异,重要的是理解他为什么会出现 debugger ,先知道原理才知道如何绕过。
以上,就是今天的全部内容了,我们下次再会~
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)