🅰️ 20.2025 Easybr 浏览器指纹过 CDP 开发教程(含检测原理与绕过方法)
📌 目的
在浏览器自动化和指纹识别领域,Chrome DevTools Protocol(CDP)是一套强大的调试协议,广泛应用于浏览器自动化、调试和性能分析等场景。然而,CDP 的使用可能暴露自动化行为,成为被检测和识别的风险点。
本教程旨在指导开发者如何在 Easybr 浏览器中通过 CDP 实现指纹伪装,降低被检测的风险,提升自动化操作的隐蔽性和稳定性。
🎯 教学目标
- 理解 CDP 的基本原理和工作机制
- 掌握通过 CDP 修改浏览器指纹信息的方法
- 了解 CDP 被检测的常见原理
- 学习在 Easybr 浏览器中绕过 CDP 检测的方法site-digger.com+5阿里云开发者社区+5GeeTest+5site-digger.com+1CSDN+1
✅ CDP 基础概述
Chrome DevTools Protocol(CDP)是 Chrome 浏览器提供的一套调试协议,允许开发者通过 WebSocket 与浏览器进行通信,执行各种调试和自动化操作。
CDP 提供了丰富的接口,涵盖页面控制、网络拦截、DOM 操作、JavaScript 执行等功能。
🛠️ Easybr 中的 CDP 集成
Easybr 浏览器基于 Chromium 内核,天然支持 CDP。开发者可以通过以下方式在 Easybr 中使用 CDP:
启动浏览器并启用远程调试端口:
bash 复制编辑 easybr --remote-debugging-port=9222
连接到 CDP:
使用 WebSocket 客户端连接到
ws://localhost:9222/devtools/browser/<id>
,即可开始发送 CDP 命令。
🔧 通过 CDP 修改指纹信息
CDP 提供了多种方法来修改浏览器的指纹信息,以下是常见的几种:
1. 修改 navigator.webdriver
属性
某些网站通过检测 navigator.webdriver
属性来识别自动化工具。可以通过以下 CDP 命令将其设置为 undefined
:
javascript复制编辑await client.send('Page.addScriptToEvaluateOnNewDocument', {
source: 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
});
2. 修改 User-Agent
通过 CDP 修改浏览器的 User-Agent,可以伪装成不同的浏览器或设备:
javascript复制编辑await client.send('Network.setUserAgentOverride', {
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'
});
3. 修改语言设置
通过 CDP 修改浏览器的语言设置,可以伪装成不同地区的用户:GeeTest
javascript复制编辑await client.send('Emulation.setLocaleOverride', {
locale: 'en-US'
});
4. 修改时区
通过 CDP 修改浏览器的时区设置,可以伪装成不同地区的用户:
javascript复制编辑await client.send('Emulation.setTimezoneOverride', {
timezoneId: 'America/New_York'
});
⚠️ CDP 被检测的常见原理
尽管 CDP 提供了强大的功能,但其使用也可能被检测到。以下是常见的检测原理:
1. 利用 console.debug()
检测
某些网站通过重写 console.debug()
函数,结合 Error
对象的 stack
属性,来检测开发者工具是否打开。具体原理如下:CSDN+1CSDN+1
- 创建一个
Error
对象,并重写其stack
属性的 getter 方法。 - 调用
console.debug()
输出该Error
对象。 - 如果开发者工具打开,
console.debug()
会触发stack
的 getter 方法,从而改变某些变量的值,进而判断开发者工具是否打开。
这种方法可以检测到使用 CDP 的自动化工具,如 Selenium、Puppeteer 等。BrowserScan
2. 检测 navigator.webdriver
属性
自动化工具通常会在 navigator
对象上添加 webdriver
属性,值为 true
。网站可以通过检测该属性来识别自动化工具。BrowserScan
3. 检测特定的 CDP 命令
某些网站可能会检测是否使用了特定的 CDP 命令,如 Page.addScriptToEvaluateOnNewDocument
,从而判断是否为自动化工具。
🔒 绕过 CDP 检测的方法
为了绕过上述检测方法,可以采取以下措施:
1. 修改 Chromium 源码
通过修改 Chromium 的源码,禁用或修改相关的函数,实现绕过检测的目的。以 console.debug()
为例:
- 定位到
v8/src/inspector/v8-console.cc
文件。 - 找到
V8Console::Debug
函数,将其内容注释掉或修改为不执行任何操作。 - 重新编译 Chromium,生成新的浏览器可执行文件。
这样,即使网站使用了 console.debug()
的检测方法,也无法检测到开发者工具的使用。
2. 使用自定义的浏览器构建版本
基于修改后的 Chromium 源码,构建自定义的浏览器版本,如 Easybr 浏览器,集成指纹伪装和绕过检测的功能,提供更加稳定和隐蔽的自动化操作环境。
🧪 测试与验证
在完成指纹伪装和绕过检测后,可以通过以下网站进行测试和验证:
- https://bot.sannysoft.com/
- https://amiunique.org/fp
- https://www.browserscan.net/bot-detection[BrowserScan](https://www.browserscan.net/zh/bot-detection?utm_source=chatgpt.com)
这些网站可以检测浏览器的各种指纹信息和自动化特征,帮助评估伪装和绕过检测的效果。
✅ 总结
通过 CDP,开发者可以灵活地修改浏览器的各种指纹信息,实现高级的指纹伪装策略。然而,CDP 的使用也可能被检测到,影响自动化操作的稳定性和隐蔽性。
结合修改 Chromium 源码和构建自定义浏览器版本的方法,可以有效地绕过 CDP 的检测,提升自动化操作的稳定性和隐蔽性。Easybr 浏览器对 CDP 的支持和指纹伪装功能,使得这些操作更加便捷和高效。