【爬虫】网站反debugger、内存爆破以及网站限制开发者工具

【爬虫】网站反debugger、内存爆破以及网站直接限制开发者工具

声明:本文中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

常见情形

目前网站反爬手段有很多,比如:网站反debugger、内存爆破、限制开发者工具等

情况一:debugger(右键不在此停止)

  • 问题: 有部分网站做了反debugger处理,当我们打开开发者工具的时候会直接断点停在某个位置。
    在这里插入图片描述
  • 解决办法:右键点击,选择永不在此停止。然后放过断点,即可继续调试。

前提:该debugger构造函数需要没有内容。如果网站开发者自定义的debugger构造函数后面有内容,是在写入数据的话(不断写入空列表、其他字符等),我们跳过断点会导致持续写入,导致内存溢出,页面卡死。

在这里插入图片描述

情况二:内存爆破

绝大多数网站反debugger会更加高深,会使用到内存爆破以及混淆技术。导致我们通过简单的右键不在此停止无法破解。

我们使用右键不在此停止,并且跳过断点后,会导致浏览器卡死。

情况三:右键被管理员禁用

部分网站会直接限制我们使用开发者工具,我们右键或者F12打开均无效,都被禁用。

我们想右键,打开开发者工具时,发现被禁用。

在这里插入图片描述

情况四:监测函数执行时间

在这里插入图片描述
我们通过快捷键强制打开开发者工具,发现页面提示非法调试。

我们进入debug断点分析,点击单步执行,查看页面js逻辑。
在这里插入图片描述

在这里插入图片描述
最终发现页面是通过判断当前window大小以及函数运行时间来确认是否存在非法调试。

解决办法

方法一:控制台-右键不再此停止

如果我们打开开发者工具后,发现自动进入断点。

  1. 首先尝试,鼠标右击永不在此停止
  2. 放过该断点,即可继续调试

方法二:本地注入JS,覆盖之前老的JS

如果方法一无效:放过断点后会导致浏览器页面卡死。即可使用本地注入JS方法,将debugger构造器置空,覆盖之前的JS。

  • 分析浏览器卡死原因:网站开发者自定义的debugger构造器不为空,在持续写入数据。
  • 本地注入JS不能刷新网站,否则会导致我们本地注入的JS失效。
分析原因:浏览器卡死原因

我们单步执行断点,发现进入了VM虚拟环境,并且该JS是进行了混淆的。

在这里插入图片描述

下面这种有特殊字符+数字+字母的,基本就是进行过JS混淆的:
在这里插入图片描述

对于这种混淆过的JS代码,我们需要对其进行还原:

还原方法:复制JS代码,然后在控制台执行即可

//我们需要进行分段还原,否则一次性全部执行,会报not a function
[s(0, -259, -213, 0, "I#ue") + f(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值