---
layout: post.njk
source: https://blog.qiaomu.ai/2026-05-11-wwhlb5
speaker: 向阳乔木
title: CloakBrowser：从 C++ 源码层打补丁，让自动化浏览器通过所有主流反爬检测 · 乔木博客
date: '2026-05-11'
summary: 本文介绍了 CloakBrowser 项目，该项目通过修改 Chromium C++ 源码，实现深度伪装自动化浏览器，以绕过 Cloudflare、reCAPTCHA 等主流反爬检测。与表面 JS 注入不同，CloakBrowser 直接修改浏览器指纹和行为，使其难以被识别。文章详述了其指纹管理、人类行为模拟、代理集成等功能，并与 Playwright 等工具对比，为网页抓取和 AI Agent 提供了更有效的解决方案。
area: tech-engineering
category: software-development
tags:
  - anti-scraping
  - browser-automation
  - chromium-patching
  - web-scraping
  - fingerprinting
people: []
companies_orgs:
  - Cloudflare
  - CloakHQ
products_models:
  - CloakBrowser
  - Chromium
  - Playwright
  - reCAPTCHA
  - FingerprintJS
  - Camoufox
media_books: []
draft: true
status: evergreen
---

乔木博客

全部

AI工具

AI教程

AI生成

AI资讯

健脑房

播客解读

论文学习

# CloakBrowser：从 C++ 源码层打补丁，让自动化浏览器通过所有主流反爬检测

AI工具

·

2026年5月11日

·

165 次阅读

·

约 9 分钟

最近发现一个开源项目，叫 CloakBrowser。

> https://github.com/CloakHQ/CloakBrowser

做过爬虫或自动化的人应该都遇到过这个问题：Cloudflare 拦截、reCAPTCHA 打低分、FingerprintJS 识别出机器人。

市面上的解决方案大多是 JS 注入或者改配置参数，用一段时间就失效了。

CloakBrowser 的思路完全不同。

## 它到底做了什么

直接改 Chromium 的 C++ 源码，重新编译成二进制。

不是在浏览器启动后注入 JS 去伪造 navigator.webdriver，也不是靠 --disable-blink-features=AutomationControlled 这种 flag。而是在编译阶段就把指纹信息改掉，包括 canvas、WebGL、音频、字体、GPU、屏幕尺寸、WebRTC、网络时序、CDP 输入行为，一共 57 处补丁。

检测系统看到的是一个"真实的浏览器"，因为它本来就是一个真实的浏览器。

测试结果比较直观：

检测项

原版 Playwright

CloakBrowser

reCAPTCHA v3 分数

0.1（机器人）

0.9（人类）

Cloudflare Turnstile

失败

通过

FingerprintJS

被识别

通过

BrowserScan

被识别

4/4 正常

navigator.webdriver

true

false

UA 字符串

HeadlessChrome

Chrome/146.0.0.0

## 为什么其他方案会失效

playwright-stealth、undetected-chromedriver、puppeteer-extra 这类工具的共同问题是：补丁打在表面，检测系统盯的也是表面。

Chrome 每次更新，JS 注入的方式可能就失效了。更麻烦的是，反爬系统已经开始检测"补丁本身"，比如某些特定的 JS 覆盖模式、flag 组合，反而成了机器人的特征。

CloakBrowser 的源码级补丁不存在这个问题，因为没有任何运行时注入的痕迹。

## 用起来有多简单

这是它最大的优点之一，API 和 Playwright 完全兼容，改一行 import 就够了：

```
<code class="language-python"># 之前
from playwright.sync_api import sync_playwright
pw = sync_playwright().start()
browser = pw.chromium.launch()

# 之后
from cloakbrowser import launch
browser = launch()
</code>
```

剩下的代码一行不用改。

JavaScript 同样支持：

```
<code class="language-javascript">import { launch } from 'cloakbrowser';

const browser = await launch();
const page = await browser.newPage();
await page.goto('https://protected-site.com');
await browser.close();
</code>
```

安装也很直接：

```
<code class="language-bash">pip install cloakbrowser
# 或
npm install cloakbrowser playwright-core
</code>
```

第一次运行会自动下载约 200MB 的定制 Chromium 二进制，之后缓存在本地，不需要额外配置。

## 几个值得关注的功能

指纹管理

每次启动会自动生成随机指纹种子，GPU 型号、屏幕尺寸、硬件参数全部自动伪造，每次启动都是一个新身份。

如果需要模拟"回访用户"（对 reCAPTCHA Enterprise 很重要），可以固定种子：

```
<code class="language-python">browser = launch(args=["--fingerprint=12345"])
</code>
```

同一个种子每次产生完全一致的指纹，在同一个站点反复访问时不会显得可疑。

人类行为模拟

加一个参数，鼠标移动、键盘输入、滚动行为全部变成人类模式：

```
<code class="language-python">browser = launch(humanize=True)
</code>
```

鼠标走贝塞尔曲线、键盘有每个字符的时间间隔、偶尔打错字再自我纠正、滚动有加速和减速过程。

不需要改任何业务代码，底层自动替换。

代理 + 时区自动匹配

这个细节很多人忽略。用了代理但时区还是 UTC、语言还是 en-US，这本身就是机器人信号。

```
<code class="language-python">browser = launch(proxy="http://user:pass@proxy:8080", geoip=True)
</code>
```

geoip=True 会通过代理出口 IP 自动检测时区和语言，同时注入 WebRTC IP 防泄漏，一个参数解决三个问题。

持久化 Profile

```
<code class="language-python">from cloakbrowser import launch_persistent_context

ctx = launch_persistent_context("./my-profile", headless=False)
</code>
```

Cookie、localStorage、缓存跨会话保留，避免被识别为无痕模式，也能积累浏览历史让 Profile 看起来更真实。

## 对抗最顽固的站点

遇到 DataDome、Kasada、Akamai 这类强度更高的反爬系统，推荐的完整配置是：

```
<code class="language-python">browser = launch(
    proxy="http://your-residential-proxy:port",  # 住宅 IP，数据中心 IP 直接被 IP 信誉封掉
    geoip=True,       # 时区和语言匹配代理出口
    headless=False,   # 有头模式，部分站点能检测无头
    humanize=True,    # 人类行为
)
</code>
```

Linux 服务器上还需要额外安装字体包，Kasada 和 Akamai 会在隐藏 canvas 上渲染 emoji 然后对比哈希值，Docker 镜像里已经预装了。

## 一些使用细节

reCAPTCHA 分数低的常见原因

page.wait_for_timeout() 会发送 CDP 命令，reCAPTCHA 能检测到。

换成原生 sleep：

```
<code class="language-python"># 有问题的写法
page.wait_for_timeout(3000)

# 正确写法
import time
time.sleep(3)
</code>
```

另外，表单填写用 page.type() 而不是 page.fill()，前者模拟真实键盘事件，后者直接设值，行为分析会发现差异。

和 AI Agent 框架集成

browser-use、Crawl4AI、Scrapling、Stagehand、LangChain 都支持，两种方式：框架直接用 CloakBrowser 的二进制，或者 CloakBrowser 先启动再通过 CDP 连接。

## 和同类工具的对比

playwright-stealth

Camoufox

CloakBrowser

补丁层级

JS 注入

C++（Firefox）

C++（Chromium）

reCAPTCHA v3

0.3-0.5

0.7-0.9

0.9

Playwright API

原生

不支持

原生

维护状态

基本停滞

不稳定

活跃

Camoufox 是最接近的竞品，但基于 Firefox，Playwright 生态的兼容性差一些，而且 2026 年初刚回归，还在 beta 阶段。

目前 GitHub 4300 星，MIT 协议，二进制有单独的许可条款（禁止再分发，但使用免费）。

项目还在活跃维护，最近刚升级到 Chromium 146。

对做数据采集、自动化测试、AI Agent 的人来说，值得关注。

© 2026

·

向阳乔木