爬虫类Chrome去除前端无限debugger反调试(轻松分析算法)

引言

想对网站进行爬虫操作或分析算法时,打开F12和往常不同的是,浏览器自动断点,导致无法正常分析js,如图可知,浏览debugger处于暂停状态,这是前端浏对非授权调试者在debug时造成干扰,在一定程度上保护前端代码这种情况。
在这里插入图片描述
本文接下来主要讲授针对此类情况如何解决。

方法1(简易抓包或者分析js适用)

点击 Deactivate breakpoints : 使所有断点临时失效,这也意味着我们不能进行断点调试了,但是其余功能都可以正常使用。

我们点击后,按钮将变为蓝色,然后我们点击Resume script excution 【继续执行】,现在我们就不会被无聊的vm显示给烦恼了!
在这里插入图片描述
方法1的方法治标不治本,虽然可以不受干扰,对于简单的js加密分析可以解决问题,但是复杂的算法,我们需要断点分析的时候,却也失去了功能,这时候我们需要借助另一款工具fiddler,下面方法2默认工具你已经配置好可以直接使用的,如果不会,点击参考这篇文章

方法2(解决实际问题-最简单的方法)

在断点处前方数字右击 切记右击位置,如图,选择 第三个,输入 false 回车,然后点击放行继续,就可以不再弹了
在这里插入图片描述
在这里插入图片描述

方法3(解决实际问题-麻烦点也是学会fiddler的一个功能)

运用fiddler的AutoResponder,我们既然已经知道让我们无限debugger的js位置,我们就想办法替换或者去掉这段代码,刚好工具拥有自动重定向文件的功能,我们来通过截图看看使用方法

第一步:熟悉界面的大致功能意思

1.工作面板说明
Enable rules:启动按钮
Unmatched requests passthrough:不匹配的请求继续发送
Enable Latency:设置延时
过滤规则输入框:可以根据自己的需要编写正则、精确匹配、字符串匹配等规则
本地文件输入框:选择需要使用的本地文件
在这里插入图片描述

第二步:保存出需要替换的代码,记住保存位置,待会儿要用

在这里插入图片描述

第三步:设置匹配规则和需要替换的本地文件

纯字符串匹配:不区分大小写,直接对包含有这个字符串的接口返回使用本地文件覆盖
NOT匹配:不区分大消息,匹配不包含后面填写的字符串的接口
EXACT匹配:精确匹配,区分大小写;精确匹配
在这里插入图片描述
在这里插入图片描述

第四步:刷新页面,自动替换符合规则地址文件

我们再次f12会发现,已经不会再有问题了。
在这里插入图片描述

第五步:分析加密内容

在这里插入图片描述

绕过F12无限debugger反调试机制可采用以下方法: ### 修改JavaScript代码 在Chrome开发者工具的Sources面板中找到包含无限debugger逻辑的代码。无限debugger通常通过`debugger`关键字、`setInterval`不断触发`debugger`或者`constructor('debugger')()`等方式实现。例如,对于使用`setInterval`实现的无限debugger代码: ```javascript setInterval(function() { debugger; }, 100); ``` 可以将其修改为: ```javascript // 注释掉无限debugger逻辑 // setInterval(function() { // debugger; // }, 100); ``` ### 利用JavaScript Hook 可以使用JavaScript Hook技术来拦截和修改与无限debugger相关的函数调用。例如,对于`setInterval`函数,可以通过以下代码进行Hook: ```javascript // 保存原始的setInterval函数 const originalSetInterval = window.setInterval; // 重写setInterval函数 window.setInterval = function(callback, delay, ...args) { if (typeof callback === 'function' && callback.toString().includes('debugger')) { // 如果回调函数包含debugger关键字,则不执行该回调 return; } // 否则,调用原始的setInterval函数 return originalSetInterval.call(this, callback, delay, ...args); }; ``` ### 禁用JavaScript并重新加载页面 有些情况下,可以尝试禁用JavaScript并重新加载页面。在Chrome浏览器中,可以通过在地址栏输入`chrome://settings/content/javascript`,然后选择“不允许任何网站运行JavaScript”,重新加载页面后可能绕过无限debugger。但这种方法可能会导致页面部分功能无法正常使用,因为很多网站依赖JavaScript来实现其功能。 ### 使用调试器的条件断点 在Chrome开发者工具中,可以设置条件断点。当遇到无限debugger时,在包含`debugger`语句的行上设置条件断点,条件设置为一个永远为`false`的表达式,如`false`。这样,调试器就不会在该`debugger`语句处中断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猫敷雪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值