# AntiDebug_Breaker
**Repository Path**: wolfking24/AntiDebug_Breaker
## Basic Information
- **Project Name**: AntiDebug_Breaker
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2026-03-23
- **Last Updated**: 2026-03-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

## Intro
本插件是基于Hook_JS库所写的Google插件,将致力于辅助前端JavaScript逆向以及渗透测试信息收集。
如何提交您自己的脚本:AntiDebug_Breaker wiki
## 教学视频
反调试:https://www.bilibili.com/video/BV1gQ4mzMEA4
Vue:https://www.bilibili.com/video/BV12148z7EnP
Hook CryptoJS对称加密 快速出key、iv、mode、padding:https://www.bilibili.com/video/BV1MPW1zDEK8
JS逆向快速定位加密位置以及获取加密密文等加密参数:https://www.bilibili.com/video/BV1cRyXBaEJX
SpiderDemo 靶场练习网站:https://www.spiderdemo.cn
## 插件安装
### 谷歌插件应用商店安装
地址:https://chromewebstore.google.com/detail/antidebug-breaker/opkclndfcbafdaecbbaklefnaadopcln
### 手动安装
将源码下载到本地后打开chrome,访问`chrome://extensions/`,点击左上角的`加载未打包的扩展程序`,然后选中源码文件夹即可:

## 脚本使用场景
>AntiDebug
- Bypass Debugger
- hook log
- Hook table
- hook clear
- hook close
- hook history
- Fixed window size
- 页面跳转JS代码定位通杀方案
- Hook CryptoJS
- Hook JSEncrypt RSA
- Hook SM-crypto
>Hook
- document.cookie
- XMLHttpRequest.setRequestHeader
- XMLHttpRequest.open
- localStorage.setItem
- localStorage.getItem
- localStorage.removeItem
- localStorage.clear
- sessionStorage.setItem
- sessionStorage.getItem
- sessionStorage.removeItem
- sessionStorage.clear
- fetch
- JSON.parse
- JSON.stringify
- Promise
- Math.random
- Date.now
- performance.now
> Vue
- 获取路由
- 清除跳转
- 清除路由守卫
- 激活Vue Devtools
### 反调试
- Bypass Debugger
该脚本用于绕过**无限Debugger**,目前引起无限Debugger的三种核心方式为:
> eval
> Function
> Function.prototype.constructor
本脚本通过 Hook 以上核心函数有效绕过大部分前端无限 debugger。但因 eval 作用域问题,某些网站可能会报错。此时可切换至火狐浏览器无视debugger进行调试。
注:极少数网站可能采用特殊反制措施(如故意引发eval作用域问题或其他问题),导致前端报错或依然能引起debugger,这种情况需针对性解决。总体而言,**本脚本能覆盖绝大多数场景**。
脚本原理:JS逆向系列14-Bypass Debugger
- hook log
本脚本为Yosan师傅所作,用于防止js重写console.log等方法。
- Hook table
绕过js检测运行时间差来实现反调试。
本脚本将针对以下这三种特征的反调试网站(注:包括但不仅限于这以下三种特征,需根据实际情况去判断是否需要使用本脚本):
> 频繁调用console.clear清除控制台数据
> 控制台频繁输出大量内容
> 进行完以上两种操作后直接使用location.href进行跳转,一般跳转到主域名为github.io的网站。
如存在以上特征的网站,均可尝试使用本脚本去进行绕过。
脚本原理:JS逆向系列19-无感绕过一类运行时间差反调试
- hook clear
禁止js清除控制台数据。
脚本原理:JS逆向系列10-反调试与反反调试
- hook close
重写close,以此来避免网站反调试关闭当前页面。
脚本原理:JS逆向系列10-反调试与反反调试
- hook history
避免网站反调试返回上一页或某个特定历史页面。
脚本原理:JS逆向系列10-反调试与反反调试
- Fixed window size
固定浏览器高度宽度值以绕过前端检测用户是否打开控制台。
固定的宽度高度值:
```text
innerHeight:660
innerWidth:1366
outerHeight:760
outerWidth:1400
```
- 页面跳转JS代码定位通杀方案
本脚本为CC11001100师傅所作,脚本原地址:`https://github.com/JSREI/page-redirect-code-location-hook`,用于阻断页面跳转,留在当前页面分析。
- Hook CryptoJS
Hook CryptoJS当中的所有 对称&哈希&HMAC算法,例如AES、DES、MD5、SHA等。如果未打印请自查目标站点是否清除了console.log或是否使用的是CryptoJS的加密算法,如果确认使用的是CryptoJS库进行的加密而无法打印可联系我。
- Hook JSEncrypt RSA
Hook JSEncrypt加密库中的RSA算法,加密时将在控制台打印公钥、原始数据、加密后的密文。解密时将在控制台打印私钥、原始数据、解密后的明文。如果未打印请自查目标站点是否清除了console.log或是否使用的是JSEncrypt的RSA算法,如果确认使用的是JSEncrypt库进行的RSA加密而无法打印可联系我。
- Hook SM-crypto
本脚本思路与初始形态为魔法少女☆ホシノ所作。
Hook SM-crypto加密库当中的 SM2、SM3、SM4算法。如果未打印请自查目标站点是否清除了console.log或是否使用的是sm-crypto的加密算法,如果清除了console.log可以尝试使用hook log脚本防止js重写log方法,如果确认使用的是sm-crypto库进行的加密而无法打印可联系我。
### Hook
- document.cookie
开启本脚本后默认将在控制台打印设置的cookie,如果需要打印特定cookie请在下方输入框中输入cookie名称,脚本将会捕获这些特定cookie名。
-
开启本脚本后默认将在控制台打印设置的请求头,如果需要打印特定请求头请在下方输入框中输入请求头名称,脚本将会捕获这些特定请求头名。
- XMLHttpRequest.open
开启本脚本后默认将在控制台打印初始化xhr请求配置(url,method),如果需要捕获特定url请在下方输入框中输入url名称,脚本将会捕获这些特定url名称。
- localStorage.setItem
开启本脚本后默认将在控制台打印设置的localStorage键值,如果需要捕获特定键请在下方输入框中输入键名,脚本将会捕获这些特定键名。
- localStorage.getItem
开启本脚本后默认将在控制台打印站点读取的localStorage键名,如果需要捕获特定键名请在下方输入框中输入键名,脚本将会捕获这些特定键名。
- localStorage.removeItem
开启本脚本后默认将在控制台打印移除的localStorage键名,如果需要捕获特定键名请在下方输入框中输入键名,脚本将会捕获这些特定键名。
- localStorage.clear
开启本脚本后如果站点进行了清空localStorage动作,默认会在控制台打印消息。
- sessionStorage.setItem
开启本脚本后默认将在控制台打印设置的sessionStorage键值,如果需要捕获特定键请在下方输入框中输入键名,脚本将会捕获这些特定键名。
- sessionStorage.getItem
开启本脚本后默认将在控制台打印站点读取的sessionStorage键名,如果需要捕获特定键名请在下方输入框中输入键名,脚本将会捕获这些特定键名。
- sessionStorage.removeItem
开启本脚本后默认将在控制台打印移除的sessionStorage键名,如果需要捕获特定键名请在下方输入框中输入键名,脚本将会捕获这些特定键名。
- sessionStorage.clear
开启本脚本后如果站点进行了清空sessionStorage动作,默认会在控制台打印消息。
- fetch
开启本脚本后默认将在控制台打印fetch请求设置。
- JSON.parse
开启本脚本后默认将在控制台打印传入的JSON,如果需要捕获特定JSON请在下方输入框中输入JSON,脚本将会捕获这些特定JSON字符串。
- JSON.stringify
开启本脚本后默认将在控制台打印传入JSON.stringify的值。
- Promise
本脚本为Yosan师傅所作。
将在控制台打印Promise的resolve参数,可快速定位异步回调位置。
- Math.random
固定Math.random返回值
- Date.now
固定Date.now返回值
- performance.now
固定performance.now返回值
### Vue
- 获取路由
获取已加载的路由并显示在下方的表格中,注意未加载的路由不会被获取到,如果长时间未获取到可能是由于目标站点未使用vue router,也可能是因为目标站点未加载完毕。
- 清除跳转
本脚本将清除vue router的跳转方法,如果清除后依然会跳转,一方面可能是由于注入的脚本还未清除跳转方法,网站就调用了方法进行跳转,此时可以考虑手动替换js清除跳转方法。另一方面可能是由于在代码中调用的不是vue router的跳转方法,此时可以考虑开启反调试板块中的hook close或hook history脚本,再或者打开页面跳转JS代码定位通杀方案脚本,定位到跳转的函数并替换清除。
- 清除路由守卫
仅清除全局前置守卫(beforeEach)和全局解析守卫(beforeResolve),如果清除后网站控制台显示报错,可能是由于在路由守卫中做了动态加载等其他操作,此时可以考虑关闭本脚本并亲自替换js逻辑实现绕过。
脚本原理:最大化收集Vue框架(SPA类型)下的js
- 激活Vue Devtools
本脚本引用自vue-force-dev。
当开启本脚本后将激活Vue Devtools。Vue2需开启Vue.js devtools(v5),Vue3需开启Vue.js devtools,可自行去谷歌插件商店安装上述两个插件。注:1.上述两个插件不能同时开。2.当下方没有检测到Vue Router时并不能代表网站不是Vue框架,只能说明网站并没有使用Vue Router。
## 插件使用注意事项
1. 本插件目前不支持火狐。
2. 进入网页后,无论是开启脚本还是关闭脚本,需刷新页面后才会生效。
3. **更新插件时请将旧版本插件从浏览器中移除再导入新版插件。**
## 致谢
致谢个人:魔法少女☆ホシノ、CC11001100、Dexter、d1sbb、Yosan
本项目参考过、引用过或正在引用的优质项目:VueCrack、FakeCryptoJS、vue-force-dev
## Contact
如有bug或其他问题可提交issues,或者关注公众号Spade sec联系我。
如需添加交流群可加我微信:I-0xsdeo。
## 使用许可
本工具禁止未授权商业用途,禁止二次开发后进行未授权商业用途。
## 404星链计划
AntiDebug_Breaker 现已加入 [404星链计划](https://github.com/knownsec/404StarLink)
## Star History
[](https://starchart.cc/0xsdeo/AntiDebug_Breaker)