逆向JS分析实战某违规网站2--反反调试案例分析

文章讲述了在爬取网页资源过程中遇到的反调试保护问题,通过逆向工程的思路,尝试使用特定方法如修改Function构造函数来规避调试检测。当最后一层反调试无法绕过时,作者建议检查调用堆栈,寻找并处理上一级的反调试函数,以此成功跳过资源页的反调试机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在攻破首页的反调试逻辑保护后,就可以完成首页相关资源的爬取。而当我们爬取某个资源的播放页面时,发现又出现首页同样的反调试保护,

在这里插入图片描述
那逆向的思路就不言而喻了,但当我们使用“逆向JS分析实战某违规网站1”的方法进行处理后,再次打开F12并刷新页面。
在这里插入图片描述
此时,会发现这次出现了不一样的情况,没有绕过反调试逻辑。

在这里插入图片描述
但这个画面这个代码是不是和“逆向JS分析实战某违规网站1”提到的网址里的案例一样?
浏览器控制台反调试

根据该网站提出的解决方案,如下图
在这里插入图片描述
用这个方法是否能成功跳过反调试呢?接下来我们进行尝试:

在图中1处下断点后,

在这里插入图片描述
然后刷新页面,可以看到程序在断点断下来了。在这里插入图片描述
先在控制台空白处右边点击“清除控制台”,然后在控制台输入以下代码并回车。

Function.prototype.constructor=function(){}

在这里插入图片描述
在这里插入图片描述
接着点击继续执行
在这里插入图片描述
此时会惊奇的发现,代码没有生效,并且程序往下正常执行到 debug 行

在这里插入图片描述
既然这里下的断点帮不了我们,只能先看看“调用堆栈”的代码执行顺序来捋一捋逻辑,看看能否找到有用的突破口。

在这里插入图片描述
在这里插入图片描述
这个也是“浏览器控制台反调试”中提及到的反调试函数,而且从图中可以得出

(function anonymous(
) {
Function(arguments[0]+"bugger")()
})

调用了

(function anonymous(
) {
debugger
})

所以采用同样的手法,在

(function anonymous(
) {
Function(arguments[0]+"bugger")()
})

下断,然后刷新页面,如下图
在这里插入图片描述
然后在控制台输入以下代码并回车

Function = function () {}

在这里插入图片描述
接着点击继续执行,此时程序能继续运行,且没有被反调试函数拦截下来,说明资源页的反调试成功跳过了。在这里插入图片描述
总结:
反调试是层层调用,如果最后一层无法绕过,千万不要在一棵树上死磕,此时可以尝试通过 “调用堆栈” 寻找上一级调用的反调试函数,然后对其进行函数抹除处理,或许会有奇效。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脱壳潜行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值