【反爬】拦截comBusiness.js disable-devtool.js

一、现象

  1. 无法使用ctrl+s保存网页,但是可以在设置菜单中可以保存;
  2. 无法使用F12和ctrl+shift+i打开开发者窗口,但是可以在设置菜单中打开;
  3. 打开开发者窗口后网站快速关闭,说明被检测到了;

二、涉及js

打开设置菜单,网页另存为本地文件

使用vscode等可以打开html源码的软件,一条条script标签注释,保存在本地浏览器打开,最终发现注释以下两个script标签可打开开发者窗口,F12和ctrl+s等快捷键也可以正常使用:

<script type="text/javascript" disable-devtool-auto="" src="./disable-devtool.js">

<script type="text/javascript" src="./comBusiness.js"></script>

由此得知:

comBusiness.js:负责检测快捷键,检测弹出提示;

disable-devtool.js:负责检测开发者窗口,检测到直接关闭整个页面;

三、破解思路

油猴脚本

  1. 移除相关script标签
  2. 重写document.createElement
  3. 使用MutationObserver 监听 DOM 变化
  4. 重写XMLHttpRequestopen 方法
  5. 重写fetch的fetch 函数

都不行,所有js的行为应该都被网站设计人员预判到了,既然在页面内解决不了,那就用页面外的方法,只要是网页就得经过浏览器,我们才是浏览器的主人,直接切断了文件来源,文件都没有也就执行不了。

浏览器插件或扩展

使用扩展直接拦截comBusiness.js和disable-devtool.js的请求
 

获取要拦截的网络请求

手动调试

这个方法考验手速,打开新标签页,在新标签页上先打开开发者窗口,切换到源代码()选项页面;

跳转链接,出现页面后几秒点击暂停按钮,什么时候暂停看网页什么时候关闭,自己掌握。

因为在前面我已经知道哪个请求的问题,点击该名称即可知道具体url。

油猴脚本

这个网页有个特点,alert弹窗会阻塞当前网页所有进程,只要不关闭alert弹窗,就不会被检测到,所以在alert弹窗打开的同时,直接打开开发者窗口,切换到网络(network)选项页面,查找comBusiness.js和disable-devtool.js的请求url。

那么我只需要在打开指定网页后直接弹出alert就行,代码也很容易实现:

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      2025-02-25
// @description  try to take over the world!
// @author       You
// @match        *://*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=aliyun.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    
    alert('暂停');
})();

弹出弹窗之后,方法同上,在开发者窗口中的网络(network)选项页面找到指定网络请求url。

抓包软件

思路与浏览器扩展一样,拦截指定请求,这个我涉猎不深,需要额外安装软件,一般默认会抓取电脑上的全部网络请求,要捕获指定的网络请求不同的软件有不同的方法,这里不过多赘述了。

拦截请求

 任何可以自定义网络请求拦截的扩展都可以,这里我随便找了个,edge直接在扩展页面拖进去就行,Chrome还没试过,可能会因为版本问题装不上,所以我一向推荐使用Edge。

HTTP Request Blocker | Chrome扩展 - Crx搜搜t

通过上面的方法我已经知道了两个js文件的网络请求,该扩展支持通配符*匹配:

*://*/disable-devtool.js
*://*/comBusiness.js

点击该扩展的扩展选项

输入要拦截的网络请求,划到最下面有个save保存按钮。

在特定的网站生效

为了避免所有网站中相同的请求都被拦截,可以在扩展设置里面的站点访问权限设置为“在特定站点上”;

比如百度域名下的所有网页:

四、实现效果

能正常打开开发者窗口,快捷键F12、Ctrl+s也能使用。

拦截的网络请求变成红色:

五、扩展

GitCode - 全球开发者的开源社区,开源代码托管平台

Crx搜搜 - 一个牛X的扩展和应用商店

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/977849.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【11】子网

区块链子网概述 什么是子网&#xff1f; 子网是在较大网络上下文中运行的较小网络&#xff0c;因此由对应的“主网”&#xff0c;主网即包含多个子网的较大网络或具有隶属关系的上一级网络。子网允许在主网中进行一些独立的事务或控制网络参数。 对于互联网而言&#xff0c;…

爬虫基础入门之爬取豆瓣电影Top250-Re正则的使用

网址:豆瓣电影 Top 250 本案例所需要的模块 requests (用于发送HTTP请求)re (用于字符串匹配和操作) 确定需要爬取的数据 &#xff1a; 电影的名称电影的年份电影的评分电影评论人数 一. 发送请求 模拟浏览器向服务器发送请求 准备工作 -分析页面: F12 or 右击点击检查 查看…

论文笔记(七十二)Reward Centering(五)

Reward Centering&#xff08;五&#xff09; 文章概括摘要附录B 理论细节C 实验细节D 相关方法的联系 文章概括 引用&#xff1a; article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arX…

Flash-03

1-问题&#xff1a;Flash软件画两个图形&#xff0c;若有部分重合则变为一个整体 解决方法1&#xff1a;两个图形分属于不同的图层 解决方法2&#xff1a;将每个图形都转化为【元件】 问题2&#xff1a;元件是什么&#xff1f; 在 Adobe Flash&#xff08;现在称为 Adobe Anim…

ssh配置 远程控制 远程协作 github本地配置

0.设备版本 windows11 ubuntu24.0.4 1.1 在 Linux 上启用 SSH 服务 首先&#xff0c;确保 Linux 计算机上安装并启用了 SSH 服务。 安装和启动 OpenSSH 服务&#xff08;如果未安装&#xff09; # 在终端安装 OpenSSH 服务&#xff08;如果尚未安装&#xff09; sudo apt …

C语言数据结构—堆的应用及Topk问题

目录 1、堆排序 1、把数组先原地调整成堆 1.1 向上调整 1.2 向下调整 1.3 两种调整方式的时间复杂度分析 2、进行排序 1、堆排序 堆排序即利用堆的思想来进行排序&#xff0c;总共分为两个步骤&#xff1a; 1、建堆 升序&#xff1a;建大堆 降序&#xff1a;建小堆 2、利…

贪心算法精品题

1.找钱问题 本题的贪心策略在于我们希望就可能的保留作用大的5元 class Solution { public:bool lemonadeChange(vector<int>& bills) {std::map<int ,int> _map;for(auto ch:bills){if(ch 5) _map[ch];else if(ch 10){if(_map[5] 0) return false;else{_m…

【Blender】三、材质篇--01,Blender材质基础 原理化BSDF

0 00:00:05,460 --> 00:00:09,980 好 材质篇上一张呢 我们做了12个模型 我知道大家很想把它晒出来 1 00:00:10,440 --> 00:00:17,360 但是咱们先把材质学了吧 学材质 我们只要抓住那些对精髓的东西就好了 能够用手试出来的东西呢 你 2 00:00:17,530 --> 00:00:30,37…

博客系统完整开发流程

前言 通过前⾯课程的学习, 我们掌握了Spring框架和MyBatis的基本使用, 并完成了图书管理系统的常规功能开发, 接下来我们系统的从0到1完成⼀个项⽬的开发. 企业开发的流程 1. 需求评审(产品经理(PM)会和运营(想口号),UI,测试,开发等沟通) ,会涉及到背景/目标/怎么做,可能会有多…

iOS App的启动与优化

App的启动流程 App启动分为冷启动和热启动 冷启动&#xff1a;从0开始启动App热启动&#xff1a;App已经在内存中&#xff0c;但是后台还挂着&#xff0c;再次点击图标启动App。 一般对App启动的优化都是针对冷启动。 App冷启动可分为三个阶段&#xff1a; dyld&#xff1a…

一键导出数据库表到Excel

工作中&#xff0c;我们经常需要将数据库表导出到Excel&#xff0c;通常我们会用数据库编辑器之类的工具提供的导出功能来导出&#xff0c;但是它们的导出功能通常都比较简单。 这篇文章将介绍一种简单易用并且功能强大的导出方法。 新增导出 打开的卢导表工具&#xff0c;新…

1.1部署es:9200

安装es&#xff1a;root用户&#xff1a; 1.布署java环境 - 所有节点 wget https://d6.injdk.cn/oraclejdk/8/jdk-8u341-linux-x64.rpm yum localinstall jdk-8u341-linux-x64.rpm -y java -version 2.下载安装elasticsearch - 所有节点 wget ftp://10.3.148.254/Note/Elk/…

基于YOLO11深度学习的半导体芯片缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

财务运营域——营收稽核系统设计

摘要 本文主要介绍了营收稽核系统的背景、特点与作用。营收稽核系统的产生源于营收管理复杂性、财务合规与审计需求、提升数据透明度与决策效率、防范舞弊与风险管理、技术进步与自动化需求、多元化业务模式以及跨部门协作与数据整合等多方面因素。其特点包括自动化与智能化、…

SpringCloud系列教程:微服务的未来(二十五)-基于注解的声明队列交换机、消息转换器、业务改造

前言 在现代分布式系统中&#xff0c;消息队列是实现服务解耦和异步处理的关键组件。Spring框架提供了强大的支持&#xff0c;使得与消息队列&#xff08;如RabbitMQ、Kafka等&#xff09;的集成变得更加便捷和灵活。本文将深入探讨如何利用Spring的注解驱动方式来配置和管理队…

速通HTML

目录 HTML基础 1.快捷键 2.标签 HTML进阶 1.列表 a.无序列表 b.有序列表 c.定义列表 2.表格 a.内容 b.合并单元格 3.表单 a.input标签 b.单选框 c.上传文件 4.下拉菜单 5.文本域标签 6.label标签 7.按钮标签 8.无语义的布局标签div与span 9.字符实体 HTML…

ui设计公司兰亭妙微分享:科研单位UI界面设计

科研单位的UI界面设计是一项至关重要的任务&#xff0c;它不仅关乎科研工作的效率&#xff0c;还直接影响到科研人员的用户体验。以下是对科研单位UI界面设计的详细分析&#xff1a; 一、设计目标 科研单位的UI界面设计旨在提升科研工作的效率与便捷性&#xff0c;同时确保科…

蓝桥杯刷题-dp-线性dp(守望者的逃离,摆花,线段)

[NOIP 2007 普及组] 守望者的逃离 题目描述 恶魔猎手尤迪安野心勃勃&#xff0c;他背叛了暗夜精灵&#xff0c;率领深藏在海底的娜迦族企图叛变。 守望者在与尤迪安的交锋中遭遇了围杀&#xff0c;被困在一个荒芜的大岛上。 为了杀死守望者&#xff0c;尤迪安开始对这个荒岛…

【算法设计与分析】(一)介绍算法与复杂度分析

【算法设计与分析】&#xff08;一&#xff09;介绍算法与复杂度分析 前言一、什么是算法&#xff1f;二、算法的抽象机制三、描述算法四、复杂度分析4.1 时间复杂度4.2 空间复杂度 前言 从搜索引擎的高效检索&#xff0c;到推荐系统的个性化推荐&#xff0c;再到人工智能领域…

自动驾驶两个传感器之间的坐标系转换

有两种方式可以实现两个坐标系的转换。 车身坐标系下一个点p_car&#xff0c;需要转换到相机坐标系下&#xff0c;旋转矩阵R_car2Cam&#xff0c;平移矩阵T_car2Cam。点p_car在相机坐标系下记p_cam. 方法1&#xff1a;先旋转再平移 p_cam T_car2Cam * p_car T_car2Cam 需要注…