当前位置: 首页 > news >正文

js逆向反调试的基本 bypass

反调试的基本检测方法

1、无限debugger 技术 (防止你断点 反编译)

2、键盘监听(右键 、 f12的禁止)

3、检测是否是浏览器

4、检测是否启用了管理员模式的(检测是不是 true)

绕过技巧:

对于没有联系的简单发现的单断点无限debug :

1、无断点模式设置

2、禁止局域断点

3、设置条件断点

高级 :

4、文件替换

5、burp规则过滤

6、hook脚本绕过

单断点: Title

单击f12 直接进入到 debugger模式  之后就是无限的停止在这个页面

使用方法1 :

使用这个

debug 绕过了 但是缺点就是我们也不能使用断点了

第二种 2、

优点是 还可以再别的函数上进行断点   缺点就是对于有联系的断点来说很麻烦

第三方法 : 和第二种差不多 :

这个的意思其实就是 用不在此处进行断点

高级 : Scrape | Movie

文件替换 :

我们打开的时候会出现 自动断点的情况  其实就是debug 函数导致的   那这个是不是可以使用本地的文件进行替换 ???因为js是前端的东西 是可以进行修改的

操作 :1、

我的是edge 浏览器 所以可能会有些不同  记录下debug的位置 

debugger ;console.log("debugger")

说明现在这个js就是我们本地的了 我们可以进行修改

修改 运行

发现不止一个 waf   上面的操作

然后重新开始就绕过了

burp规则过滤

配置上规则就行了

hook脚本:

burp一般不常用 因为来回换代理太麻烦了 

 

下载这个篡改猴   除了 edge 其他的浏览器需要魔法才能访问这个

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      2025-01-12
// @description  监控Function构造函数调用,并拦截包含'debugger'语句的函数定义,替换为日志记录
// @author       xiaodisec
// @match        https://jishulink.com/video/c246316
// @icon         https://www.google.com/s2/favicons?sz=64&domain=jishulink.com
// @grant        none
// ==/UserScript==// 立即执行函数表达式,返回一个清理函数,用于在必要时恢复Function.prototype.constructor
const cleanup = (function () {'use strict';// 保存原始的Function构造函数const originalConstructor = Function.prototype.constructor;// 检查Function.prototype.constructor是否可写if (typeof Object.getOwnPropertyDescriptor(Function.prototype, 'constructor').writable === 'boolean' &&!Object.getOwnPropertyDescriptor(Function.prototype, 'constructor').writable) {console.error('Function.prototype.constructor is not writable. Cannot hook the constructor.');return function () {};}// 重写Function构造函数Function.prototype.constructor = function (...args) {console.log(`Function constructor called on page ${location.href} with arguments:`, args);if (args.length && args[0].includes("debugger")) {console.warn(`Attempt to use 'debugger' in Function constructor intercepted on page ${location.href}!`);args[0] = args[0].replace(/debugger/g, "console.log('debugger intercepted');");// 这里需要返回一个函数实例,而不是直接返回,否则会导致函数定义失败return originalConstructor.apply(this, args);}return originalConstructor.apply(this, args);};console.log("Function.prototype.constructor is now hooked!");// 返回清理函数,用于恢复原始的Function构造函数return function () {Function.prototype.constructor = originalConstructor;console.log("Function.prototype.constructor has been restored.");};
})();// 在脚本卸载或页面卸载时调用清理函数
window.addEventListener('unload', function () {cleanup();
});

分享一个 解无限debug的脚本

启用起来

https://jishulink.com/video/c246316

目标web  当然如果你想测试其他的web  可以改指向的web

当我们不启用脚本时

播放视频时点击 f12会触发无限debug

直接bypass了

相关文章:

  • 智慧招生:实时数字人在院校招生中的应用
  • 深度学习实战107-基于Qwen3+GraphRAG+Agent的智能文档管理系统:精准问答与决策支持
  • 【OSS】如何使用OSS提供的图片压缩服务
  • 大二周周练翻译
  • 动态规划-LCR 089.打家劫舍-力扣(LeetCode)
  • 多类别异常检测新SOTA-MVMCAD
  • 如何通过生成式人工智能认证(GAI认证)提升自己的技能水平?
  • 中小实验室质检LIMS 系统选型 从成本管控到竞争力升级的黄金法则
  • Mybatis操作数据库(2)
  • [学习]POSIX消息队列的原理与案例分析(完整示例代码)
  • 基于DolphinScheduler抽取通用EventBus组件:支持延迟与事件驱动
  • Ubuntu开机自启服务
  • 关于systemverilog中在task中使用force语句的注意事项
  • 第三十八节:视频处理-视频保存
  • 线程调度与单例模式:wait、notify与懒汉模式解析
  • 麦克风与扬声器的关键区别 [特殊字符]
  • SpringBoot+ELK 搭建日志监控平台
  • 前端 vue + element-ui 框架从 0 - 1 搭建
  • Spring Cloud Seata 快速入门及生产实战指南
  • antd树结构
  • 上海黄浦:新婚夫妻来登记可“摇号”定制无人机表演,每周三对
  • A股高开高走:宠物经济走强,超3800股收涨,两市成交超1.1万亿元
  • 凤阳县鼓楼四周连夜搭起围挡,安徽省文物局已介入调查
  • 王楚钦球拍检测环节受损,国际乒联发声明
  • 长三角议事厅·周报|新能源汽车产业需寻求“第二增长曲线”
  • 国家外汇管理局:4月货物贸易项下跨境资金净流入649亿美元