Greasy Fork is available in English.
不重写关键 API,通过控制台静默绕过检测
# fuck-devtools-detector
一个强大的 Tampermonkey 油猴脚本,用于绕过网站对开发者工具(DevTools)的检测。
## 功能特性
- 🎯 **多策略检测绕过**:采用多种策略应对不同的检测手段
- 🔇 **控制台静默**:屏蔽 console 输出,防止通过 getter 探测
- 📏 **窗口尺寸伪造**:伪造 outerWidth/outerHeight 应对尺寸检测
- 📝 **正则检测拦截**:针对 aepkill 等库的正则耗时检测进行优化
- ⚡ **零侵入性**:不重写关键 API,保持页面原始功能完整
## 安装方法
### 前置要求
1. 安装浏览器扩展 [Tampermonkey](https://www.tampermonkey.net/)
- 支持 Chrome、Firefox、Edge、Safari 等主流浏览器
2. 创建新脚本
- 点击 Tampermonkey 图标 → "添加新脚本"
- 将 `1.js` 中的代码复制粘贴到编辑器中
- 将 `// @match *://*/*` 改为你要屏蔽的域名,例如`blog.aepkill.com`,改为 `// @match *://blog.aepkill.com/*`
- 保存即可自动启用
## 使用说明
### 自动生效
脚本会在所有网页(`*://*/*`)自动运行,无需手动操作。
### 查看控制台日志
由于脚本默认禁用了 console.log 以绕过检测,如需查看页面日志,可在控制台执行:
```javascript
window.showLog()
```
⚠️ **注意**:执行此命令后,检测库可能会发现你开启了开发者工具!
## 技术原理
### 策略 A: 控制台屏蔽
通过将所有 console 方法替换为空函数,阻止控制台渲染传入的对象,从而避免触发探测用的 getter。
```javascript
const methods = ['log', 'warn', 'debug', 'info', 'error', 'table', 'dir', 'trace', 'group', 'groupCollapsed', 'groupEnd'];
methods.forEach(m => {
console[m] = () => {};
});
```
### 策略 B: 窗口尺寸伪造
很多检测库通过 `outerWidth - innerWidth` 的差值来判断是否打开了开发者工具。本脚本将 outer 系列属性映射到 inner 值,消除差值。
```javascript
Object.defineProperties(window, {
'outerWidth': { get: () => window.innerWidth },
'outerHeight': { get: () => window.innerHeight }
});
```
### 策略 C: 正则检测拦截
针对 aepkill 等库使用的正则表达式耗时检测,直接拦截超长字符串的探测请求。
```javascript
RegExp.prototype.test = function(str) {
if (str && str.length > 500) return false;
return originalTest.apply(this, arguments);
};
```
### 策略 D: 日志恢复开关
提供 `window.showLog()` 函数,可在需要时恢复真实的控制台功能。
## 注意事项
- ⚠️ 本脚本仅用于学习和研究目的
- ⚠️ 在某些场景下使用可能违反网站服务条款
- ⚠️ 请勿用于非法用途
## 版本历史
- **v1.0** - 初始版本,实现基础的反检测功能
- 控制台静默
- 窗口尺寸伪造
- 正则检测拦截
- 日志恢复开关
## 许可证
本项目未指定许可证,保留所有权利。
## 贡献
欢迎提交 Issue 和 Pull Request!
---
**提示**: 如需深入了解脚本工作原理,可使用 `/explain` 指令查看详细代码解析。