Skip to content

Commit 4e22ecd

Browse files
committed
docs: update v141 20251012 release docs and config references
1 parent 134bec3 commit 4e22ecd

File tree

6 files changed

+117
-6
lines changed

6 files changed

+117
-6
lines changed

ADVANCED_FEATURES.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ BotBrowser offers multi‑layer emulation and control to keep fingerprints consi
1414

1515
## 🧭 Capabilities Index
1616

17-
[navigator.webdriver removal](#chrome-behavior-emulation), [main‑world isolation](#playwright-puppeteer-integration), [JS hook stealth](#playwright-puppeteer-integration), [Canvas noise](#graphics-rendering-engine), [WebGL/WebGPU param control](#graphics-rendering-engine), [Skia anti‑alias](#cross-platform-font-engine), [HarfBuzz shaping](#cross-platform-font-engine), [MediaDevices spoofing](#complete-fingerprint-control), [font list spoofing](#cross-platform-font-engine), [UA congruence](#configuration-and-control), [per‑context proxy geo](#enhanced-proxy-system), [DNS‑through‑proxy](#enhanced-proxy-system), [HTTP headers/HTTP2/HTTP3](#chrome-behavior-emulation), [headless parity](#headless-incognito-compatibility), [WebRTC SDP/ICE control](#webrtc-leak-protection), [TLS fingerprint (JA3/JARM)](#network-fingerprint-control)
17+
[navigator.webdriver removal](#chrome-behavior-emulation), [main‑world isolation](#playwright-puppeteer-integration), [JS hook stealth](#playwright-puppeteer-integration), [Canvas noise](#graphics-rendering-engine), [WebGL/WebGPU param control](#graphics-rendering-engine), [Skia anti‑alias](#cross-platform-font-engine), [HarfBuzz shaping](#cross-platform-font-engine), [MediaDevices spoofing](#complete-fingerprint-control), [font list spoofing](#cross-platform-font-engine), [UA congruence](#configuration-and-control), [per‑context proxy geo](#enhanced-proxy-system), [DNS‑through‑proxy](#enhanced-proxy-system), [active window emulation](#active-window-emulation), [HTTP headers/HTTP2/HTTP3](#chrome-behavior-emulation), [headless parity](#headless-incognito-compatibility), [WebRTC SDP/ICE control](#webrtc-leak-protection), [TLS fingerprint (JA3/JARM)](#network-fingerprint-control)
1818

1919
<a id="configuration-and-control"></a>
2020
## 🔧 Configuration & Control
@@ -146,12 +146,21 @@ Sophisticated noise with consistency algorithms.
146146
- AudioContext fingerprint noise injection
147147
- Maintains realistic audio processing behavior
148148
- Cross-worker consistency for complex applications
149+
- Tuned noise distribution (Chromium 141) to harden probes without audible artifacts
149150

150151
**Text‑Metrics Manipulation:**
151152
- TextMetrics and client rects noise injection
152153
- Font measurement consistency across workers
153154
- Realistic text rendering variations
154155

156+
<a id="active-window-emulation"></a>
157+
### Active Window Emulation
158+
Keep automation sessions foreground-consistent even when the host window is unfocused.
159+
160+
- `--bot-config-always-active` defaults to `true`, suppressing `blur`/`visibilitychange` events and pinning `document.hidden=false`.
161+
- Works per window: disable explicitly when sites must observe genuine focus changes.
162+
- Prevents detection heuristics that watch caret blinking, FocusManager events, or inactive viewport throttling.
163+
155164
<a id="headless-incognito-compatibility"></a>
156165
### Headless & Incognito Compatibility
157166
Consistent behavior across modes with comprehensive simulation.
@@ -179,6 +188,7 @@ Complete WebRTC fingerprint control and IP protection.
179188
- MediaStream API consistency
180189
- RTCPeerConnection behavior modification
181190
- Network topology hiding
191+
- ICE server presets and custom lists via `--bot-config-webrtc-ice` to prevent TURN-level IP disclosure
182192

183193
<a id="chrome-behavior-emulation"></a>
184194
### Chrome Behavior Emulation
@@ -318,6 +328,7 @@ Comprehensive media‑format support and codec emulation.
318328
- Platform-specific codec availability simulation
319329
- Authentic media format reporting
320330
- Container format support detection
331+
- Default profile configuration now uses `expand` to prioritize local decoders; switch back to `profile` for legacy canned lists
321332

322333
**WebCodecs API Support:**
323334
- videoDecoderSupport authentic reporting
@@ -581,7 +592,7 @@ For technical questions about advanced features, implementation details, or cust
581592
- **[CLI Flags Reference](CLI_FLAGS.md)** - Complete command-line options
582593
- **[Profile Configuration](profiles/PROFILE_CONFIGS.md)** - Advanced profile customization
583594
- **[Validation Results](VALIDATION.md)** - Research and testing data
584-
- **[BotCanvas Lab](tools/botcanvas/)** - Canvas forensics and fingerprint analysis tool
595+
- **[BotCanvasLab](tools/botcanvas/)** - Canvas forensics and fingerprint analysis tool
585596
- **[Examples](examples/)** - Automation code samples
586597

587598
---

CHANGELOG.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,76 @@ This software and its documented capabilities are provided for **academic study
88

99
⚠️ **This software is for compatibility validation in controlled, academic test environments only. It must not be used to circumvent security controls on production systems.**
1010

11+
## [2025-10-12]
12+
13+
### Major
14+
- **Chromium Core Upgrade → 141.0.7390.77**
15+
- **What**: Sync to the latest stable Chrome 141 release.
16+
- **Why**: Keeps Rendering/Network/Storage/Media in parity with upstream, reduces version‑based heuristics, and includes current security fixes.
17+
- **Impact**: More deterministic behavior on sites that gate features by major version; lower drift on fingerprint surfaces impacted by minor engine changes.
18+
19+
- **Experimental: BotCanvasLab (Canvas2D recorder)**
20+
- **What**: An opt‑in tool that **records Canvas2D draw operations** and exports **replayable code snippets** (trace → code).
21+
- **Use cases**: Reverse‑inspect how a site draws charts/captchas/signature pads; reproduce rendering flows; compare visual diffs across hosts/profiles.
22+
- **Enable**:
23+
```bash
24+
chrome.exe --bot-canvas-record-file=/abs/path/trace.canvas.jsonl --bot-profile=/abs/path/profile.enc
25+
```
26+
- **Notes**: Recording is **local** and grows with draw calls; recommended for analysis/debug, not for high‑volume production.
27+
- **Docs**: https://github.com/botswin/BotBrowser/tree/main/tools/botcanvas
28+
29+
### New
30+
- **CLI: `--bot-config-webrtc-ice` (custom ICE servers)**
31+
- **What**: Choose STUN/TURN presets or provide a custom list to **avoid TURN‑level IP disclosure**.
32+
- **Examples**:
33+
- Google preset:
34+
```bash
35+
--bot-config-webrtc-ice=google
36+
```
37+
- Custom list (comma‑separated):
38+
```bash
39+
--bot-config-webrtc-ice=custom:stun:stun.l.google.com:19302,turn:turn.example.com
40+
```
41+
- **Why**: Some probes (e.g., https://ipbinding.online/) try to infer the real network by observing TURN traffic; controlling ICE servers reduces unintended leakage.
42+
43+
- **CLI: `--bot-config-always-active` (true/false, default: true)**
44+
- **What**: Keep windows **active** even when unfocused.
45+
- **Behavior**: Suppresses `blur/visibilitychange`; forces `document.hidden=false`; caret keeps blinking; applies **per‑window** (multi‑window friendly).
46+
- **Why**: Certain sites degrade features or throttle actions when the tab isn’t considered active.
47+
48+
### Improved
49+
- **Runtime features control (finer per‑OS toggling)**
50+
- More precise reading/toggling of runtime flags at startup, including OS‑conditioned switches → **more stable cross‑OS fingerprints** when moving profiles between Windows/macOS/Android.
51+
52+
- **Chrome component plugin preload (ID: `ghbmnnjooekpmoecnnnilnnbdlolhkhi`)**
53+
- Hardened preload path and timing so this stock component extension reliably appears; improves **Chrome‑authentic** signals that some scanners expect.
54+
55+
- **WebGL/WebGL2 parameter reads**
56+
- Reworked parameter access to avoid **application‑settable states** and cross‑driver quirks; prevents false values and closes detection patterns reported by https://fv.pro/
57+
58+
- **Media types default → `expand`**
59+
- `--bot-config-media-types` now defaults to **`expand`** (previously `profile`) so BotBrowser leverages **local decoders** by default → more accurate `canPlayType`/MSE decisions.
60+
- To keep old behavior, pass `--bot-config-media-types=profile`.
61+
62+
- **AudioContext noise tuning**
63+
- Adjusted distribution/phase to better defend against **audio fingerprinting** with minimal audible/timing side‑effects.
64+
65+
### Fixed
66+
- **Font sizes stable under `--bot-config-noise-text-rects`**
67+
- Fixed an interaction where text‑rect noise perturbed computed font‑size metrics; sizes now remain stable.
68+
69+
- **Geolocation reliability**
70+
- Fixed geolocation not working in some configurations. Tracks: https://github.com/botswin/BotBrowser/issues/69
71+
72+
- **Android window sizing**
73+
- Corrected window metrics when emulating Android so viewport matches profile expectations.
74+
75+
- **Proxy robustness & validation**
76+
- Avoid crashes on failing proxies; emit clear error messages for malformed proxy arguments to prevent misconfig loops.
77+
78+
79+
---
80+
1181
## [2025-10-02]
1282

1383
### Major

CLI_FLAGS.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ The following `--bot-config-*` flags map directly to profile `configs`:
178178
--bot-config-locale=auto # Browser locale: e.g. en-US, fr-FR, de-DE, or "auto" (derived from IP/language)
179179
--bot-config-location=40.7128,-74.0060 # Location: "lat,lon" (coordinates) or "auto" (IP-based)
180180
--bot-config-media-devices=profile # Media devices: profile (fake devices), real (system devices)
181+
--bot-config-always-active=true # Keep windows/tabs active even unfocused (default true)
181182
--bot-config-noise-audio-context=true # Audio context noise: true, false
182183
--bot-config-noise-canvas=true # Canvas fingerprint noise: true, false
183184
--bot-config-noise-client-rects=false # Client rects noise: true, false
@@ -190,8 +191,9 @@ The following `--bot-config-*` flags map directly to profile `configs`:
190191
--bot-config-webgl=profile # WebGL: profile (use profile), real (system), disabled (off)
191192
--bot-config-webgpu=profile # WebGPU: profile (use profile), real (system), disabled (off)
192193
--bot-config-webrtc=profile # WebRTC: profile (use profile), real (native), disabled (off)
194+
--bot-config-webrtc-ice=google # ICE servers: google preset or custom:stun:host:port,turn:host
193195
--bot-config-window=profile # Window dimensions: profile (use profile), real (system window)
194-
--bot-config-media-types=profile # Media types: profile, real, expand (allow expanding via local decoders)
196+
--bot-config-media-types=expand # Media types: expand (default), profile, real
195197
--bot-config-mobile-force-touch=false # Mobile touch: force touch events on/off for mobile device simulation
196198
```
197199

@@ -204,6 +206,12 @@ The following `--bot-config-*` flags map directly to profile `configs`:
204206
- **Dynamic Configuration:** Perfect for automation and CI/CD
205207
- **Session Isolation:** Different settings per instance
206208

209+
### Spotlight: BotBrowser v141 20251012 Additions
210+
211+
- **`--bot-config-webrtc-ice`** — choose ICE presets or bring your own STUN/TURN list to keep TURN traffic from revealing the real network path.
212+
- **`--bot-config-always-active`** — keeps tabs/windows active (default `true`) so sites can’t key off backgrounded state; disable per window if you need native focus behavior.
213+
- **`--bot-config-media-types` default = `expand`** — BotBrowser now prefers locally available decoders for more realistic media capability checks; switch back to `profile` for the legacy behavior.
214+
207215
### Configuration Priority
208216

209217
1. **🥇 CLI `--bot-config-*` flags** (Highest priority)
@@ -259,6 +267,16 @@ chromium-browser \
259267
--bot-title="Custom Session"
260268
```
261269

270+
### Active Window + Custom ICE Setup
271+
```bash
272+
# Keep tabs active while routing WebRTC through explicit ICE servers
273+
chromium-browser \
274+
--bot-profile="/absolute/path/to/chrome141_win11_x64.enc" \
275+
--bot-config-always-active=true \
276+
--bot-config-webrtc-ice="custom:stun:stun.l.google.com:19302,turn:turn.example.com" \
277+
--bot-config-media-types="expand"
278+
```
279+
262280
### Dynamic Multi-Instance Setup
263281
```bash
264282
# Instance 1 - Chrome brand with profile window settings

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ This map links common detection surfaces to BotBrowser capabilities and the exac
149149
- **Configurability:** 20+ CLI overrides, per‑context proxies with automatic geo‑detection, and session tools (cookies/bookmarks/title)
150150
- **Headless ↔ GUI Parity:** Stable GPU/WebGPU/media signals and consistent behavior across browser modes
151151
- **Performance Controls:** Precise FPS simulation, memory/storage timing, and GPU micro‑benchmarks for realistic profiles
152+
- **Focus & Session Control:** Always-active tab emulation, configurable WebRTC ICE servers, and expanded media decoder reporting for authentic runtime signals
152153

153154
### Fingerprint Consistency Matrix — Cross‑Platform Coverage
154155

@@ -240,7 +241,7 @@ Our compatibility research examines browser fingerprinting techniques across dif
240241
| **[Validation Results](VALIDATION.md)** | Research data | 25+ anti-bot systems, 50,000+ test sessions, statistical analysis |
241242
| **[CLI Flags Reference](CLI_FLAGS.md)** | Command-line options | `--bot-config-*` flags, proxy auth, session management |
242243
| **[Profile Configuration](profiles/PROFILE_CONFIGS.md)** | Profile customization | Fingerprint control, cross-platform compatibility |
243-
| **[BotCanvas Lab](tools/botcanvas/)** | Canvas forensics tool | Canvas 2D recording, JSONL event viewer, replay roadmap |
244+
| **[BotCanvasLab](tools/botcanvas/)** | Canvas forensics tool | Canvas 2D recording, JSONL event viewer, replay roadmap |
244245
| **[Examples](examples/)** | Code samples | Playwright, Puppeteer, bot-script automation |
245246

246247
### Quick Access

profiles/PROFILE_CONFIGS.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,9 @@ All configurations are embedded in the `configs` field inside your profile JSON
9292
| `injectRandomHistory` | Optionally injects synthetic navigation history for academic experiments in browser state testing. | `false` |
9393
| `disableDebugger` | Prevents unintended interruptions from JavaScript debugger statements during automated academic workflows. | `true` |
9494
| `keyboard` | Choose keyboard fingerprint source: `profile` (emulated from profile) or `real` (use system keyboard). | `profile` |
95-
| `mediaTypes` | Media types behavior: `profile` (use profile settings), `real` (native system), `expand` (allow expanding via local decoders). | `profile` |
95+
| `mediaTypes` | Media types behavior: `expand` (prefer local decoders), `profile` (profile-defined list), `real` (native system). | `expand` |
96+
| `alwaysActive` | Keep windows/tabs in an active state to suppress `blur`/`visibilitychange` events and `document.hidden=true`. | `true` |
97+
| `webrtcICE` | ICE server preset (`google`) or custom list via `custom:stun:host:port,turn:host:port`. | `google` |
9698
| `mobileForceTouch` | Force touch events on/off when simulating mobile devices (`true`, `false`). | `false` |
9799

98100
### Proxy Settings
@@ -187,6 +189,12 @@ All configurations are embedded in the `configs` field inside your profile JSON
187189
// WebRTC: 'profile' = profile’s settings; 'real' = native; 'disabled' = no WebRTC
188190
"webrtc": "profile",
189191
192+
// WebRTC ICE servers: 'google' preset or 'custom:stun:...,turn:...'
193+
"webrtcICE": "google",
194+
195+
// Keep the window active even when unfocused (suppresses blur/visibilitychange)
196+
"alwaysActive": true,
197+
190198
// Fonts: 'profile' = profile’s embedded list; 'real' = system-installed fonts
191199
"fonts": "profile",
192200
@@ -199,6 +207,9 @@ All configurations are embedded in the `configs` field inside your profile JSON
199207
// Media devices: 'profile' = fake camera/mic devices; 'real' = actual system devices
200208
"mediaDevices": "profile",
201209
210+
// Media types: 'expand' = prefer local decoders; switch to 'profile' for legacy behavior
211+
"mediaTypes": "expand",
212+
202213
// Speech voices: 'profile' = profile’s synthetic voices; 'real' = system voices
203214
"speechVoices": "profile",
204215

tools/botcanvas/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# BotCanvas Lab (Beta)
1+
# BotCanvasLab (Beta)
22

33
Canvas 2D/WebGL fingerprint forensics for BotBrowser. Capture every API call as a JSONL event stream for analysis and future replay capabilities.
44

0 commit comments

Comments
 (0)