stealth-browser-launch
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseStealth Browser Launch
隐身浏览器启动
Launch a patched Chromium binary with C++ source-level fingerprint modifications that bypass anti-bot detection. The binary spoofs canvas, WebGL, audio, GPU, screen, WebRTC, network timing, and automation signals at the binary level — not via JavaScript injection or config patches that break with Chrome updates. Passes Cloudflare Turnstile, reCAPTCHA v3 (0.9 score), FingerprintJS, BrowserScan, and 30+ detection sites.
启动经过C++源码级指纹修改的Chromium二进制文件,绕过反机器人检测。该二进制文件在二进制层面伪造canvas、WebGL、音频、GPU、屏幕、WebRTC、网络时序和自动化信号——而非通过JavaScript注入或会随Chrome更新失效的配置补丁。可通过Cloudflare Turnstile、reCAPTCHA v3(0.9分)、FingerprintJS、BrowserScan及30+个检测站点的验证。
When to Use
使用场景
- Target blocks curl/httpx/nuclei with Cloudflare, Akamai, DataDome, or Kasada.
- Need full browser JavaScript execution for form submission, login, or XSS testing.
- Target returns 403 on all unauthenticated requests even with proper headers.
- Need to access reCAPTCHA-protected endpoints without solving CAPTCHAs.
- Running automated recon behind residential proxies — stealth browser prevents IP+UA correlation.
- 目标站点使用Cloudflare、Akamai、DataDome或Kasada阻止curl/httpx/nuclei请求。
- 需要完整的浏览器JavaScript执行环境来完成表单提交、登录或XSS测试。
- 即使携带正确请求头,未认证请求仍返回403状态码。
- 需要访问受reCAPTCHA保护的端点且无需手动解决验证码。
- 通过住宅代理运行自动化侦察——隐身浏览器可防止IP+UA关联。
Prerequisites
前置条件
- with python3 and pip.
terminal - installed:
playwright.pip install playwright && playwright install-deps chromium - Residential proxy (datacenter IPs are reputation-blocked regardless of browser fingerprint).
- Optional: for automatic timezone/locale resolution from proxy exit IP.
cloakbrowser[geoip]
- 装有python3和pip的。
terminal - 已安装:
playwright。pip install playwright && playwright install-deps chromium - 住宅代理(数据中心IP无论浏览器指纹如何都会因信誉问题被拦截)。
- 可选:用于从代理出口IP自动解析时区/区域设置。
cloakbrowser[geoip]
Quick Start
快速开始
bash
pip install cloakbrowser
python3 -c "
from cloakbrowser import launch
browser = launch()
page = browser.new_page()
page.goto('https://target.com')
print(page.title())
browser.close()
"bash
pip install cloakbrowser
python3 -c "
from cloakbrowser import launch
browser = launch()
page = browser.new_page()
page.goto('https://target.com')
print(page.title())
browser.close()
"Procedure
操作步骤
Phase 1 — Basic Stealth Launch
阶段1 — 基础隐身启动
The binary auto-generates a random fingerprint seed per launch. No flags needed for basic stealth:
python
from cloakbrowser import launch
browser = launch(
headless=True,
proxy="http://user:pass@residential-proxy:port",
geoip=True, # auto-detect timezone/locale from proxy exit IP
)
page = browser.new_page()
page.goto("https://target.com")每次启动时,二进制文件会自动生成随机指纹种子。基础隐身模式无需额外参数:
python
from cloakbrowser import launch
browser = launch(
headless=True,
proxy="http://user:pass@residential-proxy:port",
geoip=True, # 从代理出口IP自动检测时区/区域设置
)
page = browser.new_page()
page.goto("https://target.com")Standard Playwright API from here
后续使用标准Playwright API
page.locator("input[name='username']").fill("test")
page.locator("button[type='submit']").click()
browser.close()
undefinedpage.locator("input[name='username']").fill("test")
page.locator("button[type='submit']").click()
browser.close()
undefinedPhase 2 — Persistent Identity
阶段2 — 持久身份标识
Use a fixed fingerprint seed when revisiting the same target to appear as a returning visitor:
python
browser = launch(
proxy="http://user:pass@residential-proxy:port",
geoip=True,
args=["--fingerprint=42069"], # fixed seed = same fingerprint every launch
)访问同一目标站点时,使用固定指纹种子以模拟回头访客:
python
browser = launch(
proxy="http://user:pass@residential-proxy:port",
geoip=True,
args=["--fingerprint=42069"], # 固定种子 = 每次启动使用相同指纹
)Phase 3 — Headed Mode for Maximum Stealth
阶段3 — 带界面模式实现最高隐身性
Some sites detect headless even with C++ patches. Run headed with a virtual display:
bash
undefined部分站点即使经过C++补丁仍能检测无头模式。使用虚拟显示器运行带界面模式:
bash
undefinedStart virtual display
启动虚拟显示器
Xvfb :99 -screen 0 1920x1080x24 &
export DISPLAY=:99
```python
browser = launch(
headless=False, # real rendering
proxy="http://residential-proxy:port",
geoip=True,
humanize=True, # human-like mouse/keyboard/scroll
)Xvfb :99 -screen 0 1920x1080x24 &
export DISPLAY=:99
```python
browser = launch(
headless=False, # 真实渲染
proxy="http://residential-proxy:port",
geoip=True,
humanize=True, # 类人鼠标/键盘/滚动行为
)Phase 4 — Fingerprint Customization
阶段4 — 指纹自定义
Override specific fingerprint values to match a target environment:
python
browser = launch(stealth_args=False, args=[
"--fingerprint=42069",
"--fingerprint-platform=windows",
"--fingerprint-gpu-vendor=NVIDIA Corporation",
"--fingerprint-gpu-renderer=NVIDIA GeForce RTX 3060/PCIe/SSE2",
"--fingerprint-hardware-concurrency=16",
"--fingerprint-device-memory=16",
"--fingerprint-screen-width=2560",
"--fingerprint-screen-height=1440",
"--fingerprint-timezone=America/Sao_Paulo",
"--fingerprint-locale=pt-BR",
"--fingerprint-webrtc-ip=auto",
"--fingerprint-noise=false", # disable noise for FingerprintJS ML bypass
])覆盖特定指纹值以匹配目标环境:
python
browser = launch(stealth_args=False, args=[
"--fingerprint=42069",
"--fingerprint-platform=windows",
"--fingerprint-gpu-vendor=NVIDIA Corporation",
"--fingerprint-gpu-renderer=NVIDIA GeForce RTX 3060/PCIe/SSE2",
"--fingerprint-hardware-concurrency=16",
"--fingerprint-device-memory=16",
"--fingerprint-screen-width=2560",
"--fingerprint-screen-height=1440",
"--fingerprint-timezone=America/Sao_Paulo",
"--fingerprint-locale=pt-BR",
"--fingerprint-webrtc-ip=auto",
"--fingerprint-noise=false", # 禁用噪声以绕过FingerprintJS机器学习检测
])Phase 5 — Persistent Profile
阶段5 — 持久化配置文件
Maintain cookies and localStorage across sessions to bypass "first-visit" challenges:
python
from cloakbrowser import launch_persistent_context
ctx = launch_persistent_context(
"./target-profile",
headless=False,
proxy="http://residential-proxy:port",
geoip=True,
)
page = ctx.new_page()
page.goto("https://target.com")跨会话保留cookie和localStorage以绕过“首次访问”验证:
python
from cloakbrowser import launch_persistent_context
ctx = launch_persistent_context(
"./target-profile",
headless=False,
proxy="http://residential-proxy:port",
geoip=True,
)
page = ctx.new_page()
page.goto("https://target.com")Session persists across restarts
会话在重启后仍保持
ctx.close()
undefinedctx.close()
undefinedPhase 6 — Multi-Identity via CDP Multiplexer
阶段6 — 通过CDP多路复用器实现多身份标识
Run multiple browser identities from a single container using cloakserve:
bash
docker run -d --name cloak -p 127.0.0.1:9222:9222 cloakhq/cloakbrowser cloakservepython
from playwright.sync_api import sync_playwright
pw = sync_playwright().start()使用cloakserve在单个容器中运行多个浏览器身份:
bash
docker run -d --name cloak -p 127.0.0.1:9222:9222 cloakhq/cloakbrowser cloakservepython
from playwright.sync_api import sync_playwright
pw = sync_playwright().start()Each unique fingerprint seed spawns separate Chrome process with independent identity
每个唯一指纹种子都会启动独立身份的Chrome进程
b1 = pw.chromium.connect_over_cdp("http://localhost:9222?fingerprint=11111")
b2 = pw.chromium.connect_over_cdp("http://localhost:9222?fingerprint=22222")
b1 = pw.chromium.connect_over_cdp("http://localhost:9222?fingerprint=11111")
b2 = pw.chromium.connect_over_cdp("http://localhost:9222?fingerprint=22222")
Full identity control via query params
通过查询参数完全控制身份
b3 = pw.chromium.connect_over_cdp(
"http://localhost:9222?fingerprint=33333"
"&timezone=America/New_York&locale=en-US&platform=windows"
"&hardware-concurrency=4&device-memory=8"
)
b3 = pw.chromium.connect_over_cdp(
"http://localhost:9222?fingerprint=33333"
"&timezone=America/New_York&locale=en-US&platform=windows"
"&hardware-concurrency=4&device-memory=8"
)
Each browser has independent cookies, localStorage, canvas noise
每个浏览器拥有独立的cookie、localStorage和canvas噪声
undefinedundefinedPhase 7 — Anti-Bot Font Setup
阶段7 — 反机器人字体设置
For aggressive sites (Kasada, Akamai) that check canvas emoji rendering:
bash
apt install -y fonts-noto-color-emoji fonts-freefont-ttf fonts-unifont \
fonts-ipafont-gothic fonts-wqy-zenhei fonts-tlwg-loma-otfFor CreepJS font enumeration evasion, install Windows fonts:
bash
undefined针对检查canvas emoji渲染的严格站点(Kasada、Akamai):
bash
apt install -y fonts-noto-color-emoji fonts-freefont-ttf fonts-unifont \
fonts-ipafont-gothic fonts-wqy-zenhei fonts-tlwg-loma-otf为规避CreepJS字体枚举,安装Windows字体:
bash
undefinedCopy from Windows machine: C:\Windows\Fonts\
从Windows机器复制:C:\Windows\Fonts\
mkdir -p ~/.local/share/fonts/windows
cp /path/to/windows/fonts/SegoeUI*.ttf ~/.local/share/fonts/windows/
fc-cache -f
mkdir -p ~/.local/share/fonts/windows
cp /path/to/windows/fonts/SegoeUI*.ttf ~/.local/share/fonts/windows/
fc-cache -f
Then launch with:
然后启动浏览器:
browser = launch(args=["--fingerprint-fonts-dir=/home/user/.local/share/fonts/windows"])
undefinedbrowser = launch(args=["--fingerprint-fonts-dir=/home/user/.local/share/fonts/windows"])
undefinedFingerprint Flag Reference
指纹参数参考
| Flag | Default | What it controls |
|---|---|---|
| Random 5-digit | Master seed for canvas/WebGL/audio/fonts |
| | |
| Auto | WebGL UNMASKED_VENDOR_WEBGL |
| Auto | WebGL UNMASKED_RENDERER_WEBGL |
| 8 | |
| 8 | |
| 1920/1440 | Screen width |
| 1080/900 | Screen height |
| — | IANA timezone |
| — | BCP 47 locale |
| — | WebRTC ICE IP ( |
| true | Disable canvas/WebGL/audio noise |
| — | Target platform fonts path |
| — | Align font metrics to Windows (v148+) |
| Auto | Storage quota in MB |
| 48/95/0 | Taskbar height spoofing |
| 参数 | 默认值 | 控制内容 |
|---|---|---|
| 随机5位数 | canvas/WebGL/音频/字体的主种子 |
| | |
| 自动 | WebGL UNMASKED_VENDOR_WEBGL |
| 自动 | WebGL UNMASKED_RENDERER_WEBGL |
| 8 | |
| 8 | |
| 1920/1440 | 屏幕宽度 |
| 1080/900 | 屏幕高度 |
| — | IANA时区 |
| — | BCP 47区域设置 |
| — | WebRTC ICE IP( |
| true | 禁用canvas/WebGL/音频噪声 |
| — | 目标平台字体路径 |
| — | 对齐字体指标至Windows(v148+) |
| 自动 | 存储配额(MB) |
| 48/95/0 | 任务栏高度伪造 |
Pitfalls
注意事项
- Datacenter IPs get blocked regardless of browser fingerprint. Always use residential proxies.
- leaks CDP traffic that reCAPTCHA detects. Use
page.wait_for_timeout()instead.time.sleep() - Puppeteer sends more CDP traffic than Playwright. Use Playwright for reCAPTCHA-heavy targets.
- Missing fonts cause canvas hash mismatches on Kasada/Akamai. Install the font packages listed in Phase 7.
- can cause ML-based detection on FingerprintJS. Only disable noise when specifically blocked by it.
--fingerprint-noise=false - Headless mode can be detected even with C++ patches. Use headed mode () for maximum stealth on aggressive sites.
headless=False - Binary auto-updates are cached ~24h. Pin with if you need reproducibility.
browser_version=
- 数据中心IP无论浏览器指纹如何都会被拦截。 始终使用住宅代理。
- 会泄露reCAPTCHA可检测的CDP流量。 改用
page.wait_for_timeout()。time.sleep() - Puppeteer发送的CDP流量比Playwright多。 针对大量使用reCAPTCHA的目标,使用Playwright。
- 缺少字体会导致Kasada/Akamai上的canvas哈希不匹配。 安装阶段7中列出的字体包。
- 可能会触发FingerprintJS的机器学习检测。 仅在被该检测拦截时禁用噪声。
--fingerprint-noise=false - 即使经过C++补丁,无头模式仍可能被检测到。 针对严格站点,使用带界面模式()以实现最高隐身性。
headless=False - 二进制文件自动更新缓存约24小时。 如果需要可复现性,使用固定版本。
browser_version=
Verification
验证方法
- Test against — all 4 bot checks should show NORMAL.
https://browserscan.net - Test against — should not show "nodriver" or "bot" detection.
https://demo.fingerprint.com/playground - Test against reCAPTCHA v3: — score should be ≥ 0.7.
https://antcpt.com/eng/information/demo-form/recaptcha-3-test-score.html - Test against —
https://deviceandbrowserinfo.comshould be false with 0 true flags.isBot - Verify is
navigator.webdriverwithfalse.page.evaluate("navigator.webdriver")
- 在测试——所有4项机器人检测应显示NORMAL。
https://browserscan.net - 在测试——不应显示“nodriver”或“bot”检测结果。
https://demo.fingerprint.com/playground - 测试reCAPTCHA v3:——分数应≥0.7。
https://antcpt.com/eng/information/demo-form/recaptcha-3-test-score.html - 在测试——
https://deviceandbrowserinfo.com应为false,且无true标记。isBot - 通过验证
page.evaluate("navigator.webdriver")为navigator.webdriver。false
Related Skills
相关技能
- — Human-like mouse/keyboard/scroll for behavioral bypass.
humanize-automation - — TLS/JA4 fingerprint spoofing at the HTTP client level.
tls-fingerprint-impersonation - — Browser-specific HTTP/2 pseudo-header ordering and SETTINGS frames.
http2-header-impersonation
- — 类人鼠标/键盘/滚动行为,用于行为绕过。
humanize-automation - — 在HTTP客户端层面伪造TLS/JA4指纹。
tls-fingerprint-impersonation - — 浏览器特定的HTTP/2伪头排序和SETTINGS帧。
http2-header-impersonation