Python 爬虫进阶必备 - 以 aqistudy 为例的无限 debugger 反调试绕过演...

咸鱼学Python

共 1132字,需浏览 3分钟

 ·

2021-08-16 07:21

点击上方“咸鱼学Python”,选择“加为星标

第一时间关注Python技术干货!

今日网站

aHR0cHM6Ly93d3cuYXFpc3R1ZHkuY24v

这个站是看到读者在其他群里问以为又改版了,所以打开瞅瞅

本篇文章只演示反调试的绕过,其他内容之前文章讲过了。

请自行翻阅

Python爬虫进阶必备 | 关于某监测网站的内容加密分析

JS逆向 | 分析某监测网站的 debugger 反爬措施

debugger 的绕过

最后附视频演示

打开网站,发现网站禁用了 F12 和 右键

0ab7b6fc184720a5a5b39a7dcfec8c4e.webpce32151c4628df7017dfba5ec0ccf4ac.webp

这样的反调试可以通过 Ctrl + Shift + i 打开控制台

打开控制台之后看到提示debugger

72820b4a1303af72d4d666b9d374a9c7.webp

这样的 debugger ,可以在堆栈里翻看上一层堆栈看看能否置空函数来防止进入 debugger

f7a9647c6155fe7288233ad762a32f46.webp

通过堆栈可以看到txsdefwsw这个方法调用了debugger

2c5a83040a9c5ddc17b376f018d91232.webp

这个方法是在首页调用的,试了下txsdefwsw = function(){}

发现还是会出现调用,再看堆栈,发现原来还有setInterval循环调用了检测逻辑

08db0895cd16b88530e1c88287a04a56.webp5baaa9bd25a0511a8e2434e224d27b6c.webp

可以看到上图的堆栈,最顶层是city_realtime.php

在这个堆栈里找到了两个eval

65d3b2de4f3664212c4554db94a693d1.webp

所以这个网站的整套逻辑我猜是下面这样的

1、请求目标网站
2、目标网站加载首页(首页中包含上图的两个 eval
3、eval 中包含检测逻辑
4、访客打开控制台,被已经加载的检测逻辑检测,完成反调试

知道这个套路之后我们要这么反反调试?

1、本地代理这个首页,替换首页的eval

这个法子的工具用 Fiddler 或者 Reres ,用规则匹配到这个页面然后替换就好了,网上的资料很多或参考之前的文章

Python爬虫进阶必备 | 关于 ReRes 的一篇教程

2、使用如下视频的方法调试,可以在 vm 的生命周期内不用理会 debugger

有读者试过视频中的方法,但是就是不行,这是为啥?

这里可能是忽略了一个小细节,这个可以在代码中找到答案

c52e0f7ab5675c082a88fd59601a565e.webp

这里检测了 window 的内外长宽,当我们打开控制台,原有展示的页面就小了,所以只要把控制台调整成一个新的窗口就可以规避,接着使用视频展示的就可以了。

除此之外,还有读者好奇eval里面的dxYKI84fjg还有d1JR0RXxxgp逻辑在哪,进不到具体逻辑里

2270d0156340629af5a4dc8070cf8521.webp

可以像我这样在控制台输入函数名,然后点击回显的内容就可以自动跳到对应的逻辑了,这个方法适用于没有重写过toString方法的函数。

关于 debugger 反调试的形式很多,但是检测的方法大同小异,重要的是理解他为什么会出现 debugger ,先知道原理才知道如何绕过。

以上,就是今天的全部内容了,我们下次再会~

b9af805931032d91eae5117e7548b49b.webp对了,看完记得一键四连,这个对我真的很重要。

浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报