CloakBrowser:15k Star 的隐形浏览器,49 个 C++ 补丁干翻所有反爬检测
CloakBrowser:15k Star 的隐形浏览器,49 个 C++ 补丁干翻所有反爬检测
AI Agent 需要操作浏览器,但几乎每个网站都在检测你是不是机器人。
navigator.webdriver 返回 true,Canvas 指纹暴露你是 Headless 模式,TLS 握手特征和正常 Chrome 不一样,鼠标轨迹太直被行为分析识别……随便哪个环节露馅,轻则弹验证码,重则直接封 IP。
现有的 stealth 方案——playwright-stealth、undetected-chromedriver——本质上是在 JS 层面打补丁,反检测网站一升级就失效。
最近在 GitHub 上看到一个思路完全不同的项目:CloakBrowser,15,285 Star,直接在 Chromium 的 C++ 源码上打了 49 个补丁,从二进制层面消灭所有自动化痕迹。
本文提纲
- 49 个 C++ 源码级补丁,不是 JS 注入
- 实测数据:30/30 反检测测试全过
- 和 agent-browser 的关系:工具 vs 引擎
- 和同类 stealth 方案的对比
- 快速上手:一行代码替换 Playwright
- 适用场景和注意事项
49 个 C++ 源码级补丁,不是 JS 注入
先说清楚 CloakBrowser 的核心思路和传统方案的区别。
传统方案(playwright-stealth、puppeteer-extra-plugin-stealth)的工作方式是在页面加载前注入一段 JS,覆盖 navigator.webdriver、修改 chrome 对象、伪造 Canvas 指纹。问题是:
- 网站可以在 JS 注入之前就读取指纹
- 注入的 JS 本身可以被检测到
- Chrome 一更新,补丁就失效
CloakBrowser 完全不在这个层面玩。它 fork 了 Chromium 源码,直接在 C++ 层面修改了 49 个位置的代码,重新编译出一个定制的 Chromium 二进制文件。补丁覆盖的范围:
| 类别 | 补丁内容 |
|---|---|
| Canvas/WebGL/Audio | 在渲染层注入噪声,指纹每次不同但内部一致 |
| GPU 信息 | vendor/renderer 字符串替换为真实硬件值 |
| 硬件参数 | 屏幕分辨率、CPU 核心数、内存大小全部伪装 |
| Navigator | webdriver=false、plugins.length=5、chrome 对象完整存在 |
| UA 字符串 | 去掉 HeadlessChrome 标识,返回正常 Chrome/146.0.0.0 |
| WebRTC | ICE 候选和 IP 地址自动匹配代理出口 |
| TLS 指纹 | ja3/ja4/Akamai 指纹与正常 Chrome 完全一致 |
| CDP 行为 | 键盘、鼠标、滚轮操作全部人类化 |
| 网络时序 | DNS/连接/SSL 时间归零,Proxy-Connection 头剥离 |
每次启动都会从一个种子生成一套全新的、内部一致的指纹身份——GPU 型号、硬件参数、屏幕尺寸、Canvas/WebGL/Audio 噪声、字体列表全部联动。不是随机拼凑,而是像一个真实的设备配置。
实测数据:30/30 反检测测试全过
空口无凭,看数据。CloakBrowser 的 README 列了一组对比测试:
| 检测服务 | 原版 Playwright | CloakBrowser |
|---|---|---|
| reCAPTCHA v3 | 0.1(机器人) | 0.9(人类级) |
| Cloudflare Turnstile(非交互) | 失败 | 通过 |
| Cloudflare Turnstile(托管) | 失败 | 通过 |
| FingerprintJS | 检测到 | 通过 |
| BrowserScan | 检测到 | 正常 (4/4) |
navigator.webdriver |
true |
false |
navigator.plugins.length |
0 | 5 |
window.chrome |
undefined |
object |
| UA 字符串 | HeadlessChrome |
Chrome/146.0.0.0 |
| TLS 指纹 | 不匹配 | 与 Chrome 一致 |
| CDP 检测 | 检测到 | 未检测到 |
最夸张的是 reCAPTCHA v3 的 0.9 分——这是服务端验证的,不是前端糊弄。0.9 基本等于"我们确信这是个人类"。
和 agent-browser 的关系:工具 vs 引擎
这两个项目经常被放在一起讨论,但它们解决的是不同层面的问题。
agent-browser 是一个浏览器自动化 CLI 工具,给 AI Agent 用的。它解决的是"怎么操控浏览器"——打开页面、填表、点击、截图、提取数据、管理登录状态。它用的是标准的 Chrome/Chromium,不做任何反检测处理。
CloakBrowser 是一个隐身浏览器引擎,给需要绕过反爬检测的场景用的。它解决的是"怎么不被检测到"——在 Chromium 二进制层面消除所有自动化痕迹。它不提供 CLI 工具,而是提供一个 Playwright/Puppeteer 兼容的 API。
两者的关系更像这样:
你的 AI Agent
↓ 调用
自动化工具(agent-browser、Playwright、Selenium)
↓ 启动
浏览器引擎(Chrome、Chromium、或 CloakBrowser)
↓ 访问
目标网站(带反爬检测 / 不带反爬检测)
agent-browser 是中间那层"怎么操控",CloakBrowser 是底层"用什么引擎"。理论上它们可以组合——用 CloakBrowser 的隐身引擎替代 agent-browser 默认的 Chrome,兼顾操控便利性和反检测能力。
简单说:
| 维度 | agent-browser | CloakBrowser |
|---|---|---|
| 定位 | 浏览器自动化 CLI | 隐身浏览器引擎 |
| 解决什么 | 怎么操控浏览器 | 怎么不被检测 |
| 反检测 | 无(标准 Chrome) | 49 个 C++ 补丁 |
| API 风格 | 独立 CLI 命令 | Playwright/Puppeteer 替代 |
| 适用场景 | 通用网页自动化 | 反爬检测严格的网站 |
| 组合可能 | ✅ 可搭配 CloakBrowser 引擎 | ✅ 可被 agent-browser 调用 |
如果你只是做普通的网页自动化、测试、数据提取,agent-browser 足够。如果你要爬的网站有 Cloudflare、DataDome、reCAPTCHA 这类强检测,CloakBrowser 才派上用场。
和同类 stealth 方案的对比
CloakBrowser README 里有一组横向对比:
| 特性 | Playwright | playwright-stealth | undetected-chromedriver | Camoufox | CloakBrowser |
|---|---|---|---|---|---|
| reCAPTCHA v3 | 0.1 | 0.3-0.5 | 0.3-0.7 | 0.7-0.9 | 0.9 |
| Cloudflare Turnstile | 失败 | 偶尔 | 偶尔 | 通过 | 通过 |
| 补丁级别 | 无 | JS 注入 | 配置补丁 | C++(Firefox) | C++(Chromium) |
| Chrome 更新后存活 | — | 经常失效 | 经常失效 | 是 | 是 |
| 维护状态 | 活跃 | 停滞 | 停滞 | 不稳定 | 活跃 |
Camoufox 也是 C++ 源码级补丁,但它基于 Firefox,而 CloakBrowser 基于 Chromium。对大多数 Playwright/Puppeteer 用户来说,Chromium 生态的兼容性好得多。
快速上手:一行代码替换 Playwright
Python 安装:
pip install cloakbrowser
Node.js 安装:
npm install cloakbrowser playwright-core
从 Playwright 迁移只需要改一行:
- from playwright.sync_api import sync_playwright
- pw = sync_playwright().start()
- browser = pw.chromium.launch()
+ from cloakbrowser import launch
+ browser = launch()
首次运行会自动下载定制的 Chromium 二进制文件(约 200MB),之后缓存到本地,SHA-256 校验。还有一个 humanize=True 参数,一行开启人类化的鼠标曲线、键盘输入节奏(每个字符间有思考停顿)、滚动模式。
Docker 也可以:
docker run --rm cloakhq/cloakbrowser cloaktest
适用场景和注意事项
适合的场景:
- AI Agent 需要访问有反爬保护的网站(Cloudflare、DataDome 等)
- 数据采集/价格监控
- 广告验证
- SEO 检查
- 需要持久化 Cookie/Session 的多账号管理
需要注意的点:
- 定制 Chromium 二进制约 200MB,首次下载需要点时间
- MIT 协议只覆盖 wrapper 代码,Chromium 二进制有单独的使用许可(免费但不可再分发)
- 每次 Chromium 大版本更新都需要重新编译补丁,虽然项目维护很活跃(当前基于 Chromium 146),但这是一个持续依赖
- 道德边界:反检测技术本身是中性的,用途决定性质
项目地址:github.com/CloakHQ/CloakBrowser
49 个 C++ 源码级补丁,不是在 JS 层面打补丁,而是从根本上消除了 Chromium 的自动化痕迹。reCAPTCHA v3 拿 0.9,Cloudflare Turnstile 直接过,TLS 指纹和正常 Chrome 一模一样。
对于需要绕过强反爬检测的 AI Agent 来说,这是目前开源方案里最彻底的一个。和 agent-browser 这类自动化工具搭配使用,操控便利性和隐身能力都不缺。
作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。

浙公网安备 33010602011771号