
camoufox v152.0.4-beta.29
🦊 Anti-Erkennungs-Browser
Camoufox
Camoufox ist ein Open-Source-Anti-Erkennungs-Browser, der für Web Scraping und KI-Agenten entwickelt wurde. 🦊
⚠️ Dieses Projekt befindet sich in der Entwicklung. Es ist möglicherweise nicht für den stabilen Produktionseinsatz geeignet. ⚠️
[!NOTE] Die gesamte aktuelle Dokumentation ist verfügbar unter camoufox.com.
[!NOTE] Die Browser-Entwicklung ist aktiv auf github.com/CloverLabsAI/camoufox und github.com/VulpineOS/VulpineOS.
Dieses Repository wird verwendet, um Checkpoint-Releases zusammenzuführen und sollte als Master-Kopie betrachtet werden.
Sponsoren
Alle anzeigen/einklappen
| Scrapfly ist eine Unternehmenslösung, die eine Web-Scraping-API bereitstellt, die darauf abzielt, den Scraping-Prozess zu vereinfachen, indem sie alles verwaltet: echtes Browser-Rendering, rotierende Proxys und Fingerabdrücke (TLS, HTTP, Browser), um alle wichtigen Anti-Bots zu umgehen. Scrapfly ermöglicht außerdem die Beobachtbarkeit, indem ein Analyse-Dashboard bereitgestellt und die Erfolgsrate/Blockierungsrate detailliert gemessen wird. |
| Clover Labs ist ein in Toronto ansässiges Venture Studio, das KI-Agenten für Wachstum und Distribution entwickelt. |
| SerpApi, eine Websuche-API um Google und andere Suchmaschinen mit einer einfachen API zu scrapen. |
|
Talordata ist eine einfache Websuche-API, um Google und andere Suchmaschinen zu einem Bruchteil der Kosten zu scrapen. Erhalten Sie 1.000 kostenlose Anfragen bei der Registrierung und zahlen Sie nur 0,25 $ pro 1.000 erfolgreiche Antworten – keine Gebühren für fehlgeschlagene Scrapes. Verwenden Sie den Gutscheincode CAMOUFOX für 10% RABATT auf Residential Proxys. [Discord] |
|
Webdaten, die die Anti-Bots überleben. Crawlbase gibt Entwicklern und KI-Teams zuverlässige Daten in großem Maßstab: einen Crawler mit 99% Erfolgsquote, Crawling-API, Smart AI Proxies und Web MCP Server, die durchkommen, damit Ihre Scraper und Agenten nicht kaputtgehen. Sie bauen, wir kümmern uns um die Infrastruktur. Erhalten Sie 15% Rabatt in den ersten 3 Monaten mit dem Code CAMOUFOX → crawlbase.com |
| Scrappey ist eine Web-Scraping-API, die nur erfolgreiche Scrapes mit Pay-as-you-go berechnet – keine Abonnements. Scrapen Sie komplexe Websites. Residential Proxys inklusive, keine versteckten Proxy-Gebühren oder verfallende Guthaben. Eine API für direktes HTTP, vollständiges Browser-Rendering, JavaScript-lastige Seiten, Screenshots, Sitzungen, über 30 Browser-Aktionen und gleichzeitig über 200 gleichzeitige Sitzungen – vertrauenswürdig von über 1000 Entwicklern und KI-Agenten. Erhalten Sie 10% Rabatt mit dem Code CAMOUFOX. |
Proxy-Anbieter
Camoufox ist für die Verwendung mit rotierenden Proxys (vorzugsweise Residential-IPs) vorgesehen. Schauen Sie sich diese Anbieter an:
|
🚀 Camoufox × ProxyEmpire Betreiben Sie Camoufox? Ihre Proxy-Ebene entscheidet darüber, ob Sie skalieren — oder blockiert werden. ProxyEmpire bietet: • 🌍 30M+ Residential IPs (170+ Länder) • 📱 4G/5G Mobile Proxies • 🔄 Rotierende & Sticky Sessions • ⚡ Unbegrenzte gleichzeitige Sitzungen • 🎯 Präzises Geo-Targeting • HTTP, HTTPS & SOCKS5 Unterstützung Entwickelt für Scraping, Automatisierung und High-Stealth-Workflows. 🔥 Exklusives Angebot – Verwenden Sie den Code Camoufox30 Erhalten Sie 30% wiederkehrenden Rabatt (nicht nur im ersten Monat). Verbessern Sie Ihre Proxys. Reduzieren Sie Sperren. Skalieren Sie richtig. |
|
Hey, wir haben BirdProxies entwickelt, weil Proxys nicht kompliziert oder überteuert sein sollten. Schnelle Residential- und ISP-Proxys an über 195 Standorten, faire Preise und echter Support. Probieren Sie unser FlappyBird-Spiel auf der Landingpage für kostenlose Daten aus! Jetzt testen | Discord |
|
RapidProxy - Stärken Sie Ihre Daten mit Premium-Proxys. 🎁 Proxys kostenlos testen + Verwenden Sie den Code RAPID10 für 10% RABATT Warum RapidProxy wählen? • 🌍 90M+ IPs in über 200 Ländern und Regionen • ♾️ Keine Verfallszeit für Traffic – jederzeit nutzbar, kein Druck • 🔥 Unbegrenzte Gleichzeitigkeit für maximale Leistung • 💰 Ab nur $0,65/GB – für Skalierung ausgelegt • 📍 City-Level-Targeting für präzisen Geo-Zugriff • 🔄 Flexible Sitzungssteuerung, angepasst an Ihre Bedürfnisse Verpassen Sie es nicht – starten Sie noch heute Ihre kostenlose Testversion und erleben Sie schnelle, stabile und skalierbare Proxy-Leistung mit RapidProxy. |
|
Swiftproxy - Hochleistungs-Residential-Proxys für skalierbare Datenerfassung Entwickelt für Entwickler, die eine zuverlässige, Anti-Erkennungs-Proxy-Infrastruktur benötigen. Swiftproxy bietet stabile Verbindungen, hohe Erfolgsraten und flexible Kontrolle für groß angelegtes Scraping und Automatisierung. • 🌍 Über 195 Standorte mit ethisch bezogenen Residential-IPs • 🔄 Rotierende & Sticky-Sitzungen mit präzisem Geo-Targeting • ⚡ Optimiert für Anti-Ban & hohe Erfolgsrate • 🔌 HTTP / HTTPS / SOCKS5 Unterstützung • 🧪 Kostenlose 500MB-Testversion zum Testen • 💸 Spezieller Rabattcode für Camoufox-Benutzer: PROXY90 - 10% Am besten geeignet für: Web Scraping, Automatisierung, Multi-Accounting und groß angelegte Datenextraktion |
|
MangoProxy ist ein Residential-, ISP-, Mobil- und Rechenzentrum-Proxy-Dienst, der für professionelle Aufgaben entwickelt wurde, bei denen Stabilität, Geschwindigkeit und Anonymität wichtig sind. Verwenden Sie den Code DAIJRO für 8% RABATT auf ISP Static Proxys |
|
9Proxy bietet Residential-Proxys ab nur $0,018/IP oder $0,68/GB. 20M+ IPs in über 90 Ländern. Sticky- oder rotierende Sitzungen, verwaltet von der Desktop- oder mobilen App. |
|
NodeMaven: Der zuverlässigste Proxy-Anbieter mit den höchsten Qualitäts-IPs auf dem Markt. Beste Lösung für Automatisierung, Web Scraping, SEO-Recherche und Social-Media-Management. NodeMaven bietet: • Sticky-Sitzungen bis zu 7 Tagen • 99,9% Verfügbarkeit • IP-Filterung: alle Proxys haben einen Betrugswert <97% • Keine KYC erforderlich • Cashback auf Traffic - GB verbrauchen und bis zu 10% zurückerhalten Spezialangebot: Verwenden Sie den Code CAMOUFOX35, um 35% Rabatt auf Proxys zu erhalten. |
|
Proxidize | Mobile und Residential Proxys für Camoufox Betreiben Sie Camoufox im großen Maßstab? Ihre Browser-Einrichtung ist nur die Hälfte des Stacks. Auch Ihre Proxy-Ebene ist wichtig. Proxidize bietet mobile und Residential-Proxys, die für Scraping, Browser-Automation, SEO-Überwachung, KI-Agenten und Datenerfassungs-Workflows entwickelt wurden. Warum Proxidize? • Echte 4G- und 5G-Mobilproxys • Residential-Proxys in über 195 Ländern • Rotierende und Sticky-Sitzungen • Stadt- und Carrier-Targeting • Unbegrenzte Gleichzeitigkeit • HTTP(S), SOCKS5 und UDP über SOCKS Unterstützung • Keine Hardware oder DIY-Einrichtung erforderlich Entwickelt für Teams, die eine zuverlässige Proxy-Infrastruktur benötigen, ohne Geräte, Server oder Proxy-Rotation selbst verwalten zu müssen. Spezialangebot für Camoufox-Benutzer: Verwenden Sie den Code CAMOUFOX20 für 20% Rabatt. Jetzt starten: https://proxidize.com |
Einführung
Camoufox ist ein Firefox-Fork, der für Web Scraping und KI-Agenten entwickelt wurde. Es ist headless, unerkennbar und für den Betrieb in großem Maßstab optimiert. Jeder Lauf erhält eine neue Identität, die aus der realen Verteilung von Geräten abgeleitet ist, sodass es sich in den normalen Verkehr einfügt, anstatt aufzufallen.
Highlights
- Built for AI agents 🤖
- Minimaler, entschlackter Firefox – schneller Start, günstig im Betrieb
- Drop-in-Kompatibilität mit Playwright über die Python-Schnittstelle
- Unsichtbar für Anti-Bot-Systeme, sodass Sie Ihren Agenten-Cluster lokal oder in der Cloud ausführen können, ohne erkannt zu werden
- Von Grund auf unerkennbar 🎭
- Seitenautomatisierung vor JavaScript-Inspektion verborgen. Weitere Einzelheiten finden Sie auf der Stealth-Seite.
- Fingerabdruck-Injektion und -Rotation (ohne JS-Injektion!)
- Alle Navigator-Eigenschaften (Gerät, Betriebssystem, Hardware, Browser, usw.) ✅
- Bildschirmgröße, Auflösung, Fenster- und Viewport-Eigenschaften ✅
- Geolokalisierung, Zeitzone, Gebietsschema und Intl-Spoofing ✅
- WebRTC-IP-Spoofing auf Protokollebene ✅
- Stimmen, Sprachwiedergabegeschwindigkeit, usw. ✅
- Und vieles mehr!
- Grafisches Anti-Fingerprinting
- WebGL-Parameter, unterstützte Erweiterungen, Kontextattribute und Shader-Präzisionsformate ✅
- Schriftart-Spoofing und Anti-Fingerprinting ✅
- Optimiert für Automatisierung
- Menschliche Mausbewegungen 🖱️
- Blockiert und umgeht Werbung 🛡️
- Keine CSS-Animationen 💨
- Entschlackt und optimiert für Speichereffizienz ⚡
- PyPi-Paket für Updates und automatische Fingerabdruck-Injektion 📦
- Bleibt mit der neuesten Firefox-Version auf dem neuesten Stand 🕓
Fingerabdruck-Injektion
In Camoufox werden Daten auf der C++-Implementierungsebene abgefangen, wodurch die Änderungen durch JavaScript-Inspektion nicht erkennbar sind.
Um einzelne Fingerabdruck-Eigenschaften zu fälschen, übergeben Sie ein JSON mit den zu fälschenden Eigenschaften an die Python-Schnittstelle:```py
with Camoufox(config={"property": "value"}) as browser:
Vom Benutzer nicht festgelegte Konfigurationsdaten werden automatisch mit [BrowserForge](https://github.com/daijro/browserforge)-Fingerabdrücken befüllt, die die statistische Verteilung von Geräteeigenschaften im realen Datenverkehr nachahmen.
[[Siehe implementierte Eigenschaften](https://camoufox.com/fingerprint/)]
---
## Python-Nutzung
Camoufox ist mit Ihrem vorhandenen Playwright-Code kompatibel. Sie müssen nur Ihre Browser-Initialisierung ändern.
**Sync API**```python
from camoufox.sync_api import Camoufox
with Camoufox() as browser:
page = browser.new_page()
page.goto("https://example.com")
Async API```python from camoufox.async_api import AsyncCamoufox
async with AsyncCamoufox() as browser: page = await browser.new_page() await page.goto("https://example.com")
[[Installation & Nutzung](https://camoufox.com/python/)]
### Volle Nutzung von Hardware-Spoofing
Verwenden Sie für stabile Versionen immer das Haupt-Paket [`camoufox`](https://pypi.org/project/camoufox/) per pip. Wenn Sie jedoch kontextabhängige Fingerabdrücke und Hardware-Spoofing nutzen möchten, verwenden Sie das Paket [`cloverlabs-camoufox`](https://pypi.org/project/cloverlabs-camoufox/). Dieses Paket wird mit jeder Veröffentlichung aktualisiert, während das offizielle Paket zeitlich verzögert veröffentlicht wird.
Stellen Sie sicher, dass Sie eine virtuelle Umgebung verwenden, um Konflikte zwischen den beiden Paketen zu vermeiden.
**Installation**```bash
pip install cloverlabs-camoufox
Holen Sie sich den neuesten Vorab-Browser (empfohlen für die neuesten Patches)```bash python -m camoufox sync python -m camoufox set official/prerelease python -m camoufox fetch
**Nutzung** — die API ist identisch mit dem Upstream-Paket:```python
from camoufox.sync_api import Camoufox
with Camoufox() as browser:
page = browser.new_page()
page.goto("https://example.com")
Echte Fingerprint-Voreinstellungen (empfohlen für v149+ Binärdateien)
Standardmäßig werden Fingerprint-Werte von BrowserForge synthetisiert. Für eine bessere Umgehung komplexer Konsistenzprüfungen können Sie die gebündelten Voreinstellungen verwenden – echte Fingerabdrücke, die aus Firefox-Datenverkehr in freier Wildbahn gesammelt wurden:```python with Camoufox(fingerprint_preset=True, os="macos") as browser: ...
Die Bibliothek leitet automatisch basierend auf der Binärversion weiter: Firefox ≥ 149 lädt `fingerprint-presets-v150.json` (312 Presets, die v149–v152 abdecken, 67 macOS / 180 Windows / 65 Linux); ältere Binärdateien fallen auf das ursprüngliche Bündel zurück. UA-Strings werden umgeschrieben, um zur aktiven Binärversion zu passen, sodass das Opt-in versionsübergreifend sicher ist. Übergeben Sie ein Preset-Wörterbuch anstelle von `True`, um einen bestimmten Fingerabdruck festzulegen.
---
## Fähigkeiten
Nachfolgend finden Sie eine Liste der Patches und Funktionen, die in Camoufox implementiert sind.
### Fingerabdruck-Spoofing
- Spoofing von Navigator-Eigenschaften (Gerät, Browser, Gebietsschema usw.)
- Unterstützung zur Emulation von Bildschirmgröße, Auflösung usw.
- Spoofing von WebGL-Parametern, unterstützten Erweiterungen, Kontextattributen und Shader-Präzisionsformaten.
- Spoofing der inneren und äußeren Fenster-Viewport-Größen
- Spoofing der AudioContext-Abtastrate, Ausgangslatenz und maximalen Kanäle
- Spoofing von Gerätestimmen und Wiedergabegeschwindigkeiten
- Spoofing der Anzahl verfügbarer Mikrofone, Webcams und Lautsprecher.
- Netzwerk-Header (Accept-Language und User-Agent) werden gespooft, um den Navigator-Eigenschaften zu entsprechen
- WebRTC-IP-Spoofing auf Protokollebene
- Geolokalisierungs-, Zeitzonen- und Gebietsschema-Spoofing
- Battery-API-Spoofing
- usw.
### Stealth-Patches
- Vermeidet Lecks der Haupt-Welt-Ausführung. Das gesamte Page-Agent-JavaScript ist in einer Sandbox.
- Vermeidet Lecks im Frame-Ausführungskontext
- Behebt die Erkennung von `navigator.webdriver`
- Behebt die Erkennung von Firefox im Headless-Modus über den Zeigertyp ([#26](https://github.com/daijro/camoufox/issues/26))
- Entfernte potenziell leckende Anti-Zoom/Meta-Viewport-Handling-Patches
- Verwendet nicht-standardmäßige Bildschirm- und Fenstergrößen
- Wiederaktivierung der Fission-Inhaltsisolierungen
- Wiederaktivierung von PDF.js
- Andere leckende Konfigurationseigenschaften geändert
- Menschliche Cursorbewegung
### Anti-Font-Fingerprinting
- Verwendet automatisch die korrekten Systemschriftarten für Ihren User-Agent
- Gebündelt mit Windows-, Mac- und Linux-Systemschriftarten
- Verhindert Font-Metrics-Fingerprinting durch zufällige Verschiebung des Buchstabenabstands
### Playwright-Unterstützung
- Eigene Implementierung von Playwright für das neueste Firefox
- Verschiedene Konfigurations-Patches zur Umgehung der Bot-Erkennung
### Debloat/Optimierungen
- Entfernt/deaktiviert _sehr viele_ Mozilla-Dienste. Läuft schneller als das originale Mozilla Firefox und verbraucht weniger Speicher (200 MB)
- Patches von LibreWolf & Ghostery zur Entfernung von Telemetrie & Bloat
- Debloat-Konfiguration von PeskyFox, LibreWolf und anderen
- Geschwindigkeits- und Netzwerkoptimierungen von FastFox
- Alle CSS-Animationen entfernt
- Minimalistisches Design
- usw.
### Addons
- Laden von Firefox-Addons ohne Debug-Server durch Übergabe einer Liste von Pfaden an die Eigenschaft `addons`
- uBlock Origin mit benutzerdefinierten Datenschutzfiltern hinzugefügt
- Addons dürfen keine Tabs öffnen
- Addons werden automatisch im privaten Modus aktiviert
- Addons werden automatisch an die Symbolleiste angeheftet
- Behebt DNS-Lecks durch uBO-Prefetching
### Python-Schnittstelle
- Generiert und injiziert automatisch eindeutige Geräteeigenschaften in Camoufox basierend auf ihrer realen Verteilung
- WebGL-Fingerabdruck-Injektion & -Rotation
- Verwendet die korrekten Systemschriftarten sowie Subpixel-Antialiasing & Hinting basierend auf Ihrem Zielbetriebssystem
- Vermeidet Proxy-Erkennung durch Berechnung der Zielgeolokalisierung, Zeitzone & des Gebietsschemas aus der Zielregion Ihres Proxys
- Berechnet und spoofed die Browsersprache basierend auf der Verteilung der Sprachsprecher in der Zielregion des Proxys
- Remote-Server-Hosting zur Verwendung von Camoufox mit anderen Sprachen, die Playwright unterstützen
- Eingebauter virtueller Anzeigepuffer, um Camoufox sichtbar auf einem Headless-Server auszuführen
- Ein-/Ausschalten von Bildladen, WebRTC und WebGL
- usw.
> [!NOTE]
> Camoufox unterstützt das Injizieren von Chromium-Fingerabdrücken **nicht** vollständig. Einige WAFs (wie [Interstitial](https://nopecha.com/demo/cloudflare)) testen auf Spidermonkey-Engine-Verhalten, das unmöglich zu spoofen ist.
---
# Stealth-Übersicht
## Wie Camoufox seine Automatisierungsbibliothek verbirgt
> [!WARNING]
> **Aktueller Stand 2026**:
> Aufgrund einer persönlichen Situation gab es eine einjährige Wartungspause. Camoufox hat an Leistung verloren aufgrund der zugrunde liegenden Firefox-Version und neu entdeckter Fingerabdruck-Inkonsistenzen. **Camoufox wird derzeit aktiv weiterentwickelt.**
In Camoufox wird der gesamte interne Page-Agent-Code von Playwright in einer Sandbox isoliert. Dadurch ist es für eine Seite unmöglich, das Vorhandensein von Playwright durch JavaScript-Inspektion zu erkennen.
Normalerweise injiziert Playwright etwas JavaScript in die Seite, wie `window.__playwright__binding__`, und führt Aktionen wie das Abfragen von Elementen, die Auswertung von JavaScript oder die Ausführung von Init-Skripten durch, die von Websites erkannt werden können. In Camoufox werden diese Aktionen in einem isolierten Bereich außerhalb der Seite behandelt. Mit anderen Worten: Websites können kein JavaScript mehr 'sehen', das Playwright normalerweise injizieren würde. Dadurch werden Spuren von Playwright vollständig vermieden.
Selbst mit dem Verstecken seiner Automatisierungsbibliothek ist Camoufox jedoch nicht immun gegen Inkonsistenzen bei der Fingerabdruck-Rotation. Dies erfordert weiterhin Wartung, um diese zu erkennen und zu beheben.
### Seiteninteraktionen
Anti-Bot-Systeme führen auch clientseitige Skripte aus, um Ihr Verhalten zu überwachen. Sie suchen beispielsweise nach Mustern in Mausbewegungen, Klicks, Scrollen und der Zeitabstände zwischen Aktionen.
<video controls src="https://github.com/user-attachments/assets/6d33d6af-3537-4603-bf24-6bd3f4f8f455" width="200px" loop muted></video>
Camoufox gibt sein Bestes mit seinem menschenähnlichen Mausbewegungsalgorithmus. Der Algorithmus für natürliche Bewegungen stammt ursprünglich von [riflosnake's HumanCursor](https://github.com/riflosnake/HumanCursor) und wurde in C++ neu geschrieben und für distanzbewusstere Trajektorien modifiziert.
Dies ist jedoch nicht perfekt. Es kann immer noch mit ausreichend ausgefeilter Analyse erkannt werden. (In Arbeit für die Zukunft)
---
## Wie Camoufox Identitäten rotiert
KI-Agenten müssen über viele Sitzungen hinweg arbeiten, ohne markiert oder ratenbegrenzt zu werden. Die Rotation Ihrer IP-Adresse reicht nicht aus – jede Browsersitzung trägt Tausende von Signalen, die einen eindeutigen **Fingerabdruck** erzeugen. Eine Website kann Ihr Betriebssystem, Ihre GPU, Bildschirmauflösung, Schriftarten, Zeitzone und mehr sehen. Wenn diese Signale inkonsistent oder ungewöhnlich sind, werden Sie blockiert.
### Marktanteilsverteilung
Selbst wenn Sie Ihre IP für jede laufende Bot-Instanz rotieren, können Webzugriffs-Firewalls immer noch maschinelles Lernen einsetzen, um eingehenden Webverkehr zu analysieren und zu erkennen, ob er abnormal ist. Wenn der Linux-Marktanteil 5% betrug und plötzlich 20% beträgt, ist das eine rote Flagge. Sie werden dann bedingungslos von allen Linux-Nutzern verlangen, ein Captcha zu lösen.
Camoufox verwendet den Fingerabdruck-Generator von [BrowserForge](https://github.com/daijro/browserforge), um die statistische Verteilung von Gerätedaten im realen Verkehr nachzuahmen. Beispielsweise wird Camoufox Ihren Browser in 5% der Fälle wie einen Linux-Nutzer aussehen lassen. Von diesen 5% wird es in 9,5% der Fälle eine 2560x1440-Bildschirmauflösung und in 27,5% eine Intel-HD-GPU spoofen.
### Wie kann Camoufox erkannt werden?
Camoufox kann Fingerabdrücke mit einem korrekten Marktanteil spoofen. **Fingerabdrücke müssen jedoch auch intern konsistent sein.** Ein Windows-User-Agent mit einer Apple M1 GPU, ein macOS-User-Agent mit einem Windows DirectX Renderer und ein mobiles Gerät mit einer Desktop-Bildschirmauflösung sind allesamt unmöglich und werden als verdächtig markiert.
Von den Tausenden möglichen Datenpunkten, die geändert werden müssen, um einen glaubwürdigen gespooften Fingerabdruck zu erzeugen, wobei jede Änderung mit den anderen konsistent sein muss, gelingt Camoufox nicht immer. Anti-Bot-Anbieter testen Camoufox immer wieder, um auch nur eine einzige Inkonsistenz zu finden, und aktualisieren dann sofort ihre Hintergrundskripte, um darauf zu testen.
---
## Wie schneidet Camoufox im Vergleich zu anderen Lösungen ab?
### JavaScript-basierte Lösungen
In der Vergangenheit versuchten Entwickler, JavaScript zu injizieren, um diese Werte zu spoofen, aber das funktioniert nicht zuverlässig, da JavaScript nicht alles spoofen kann. Eine unvollständige Abdeckung führt zu inkonsistenten Fingerabdrücken. Beispielsweise wird ein Anti-Bot-System Sie markieren, wenn der User-Agent Ihrer Netzwerkanfrage nicht mit dem User-Agent Ihres Navigators übereinstimmt.
Zusätzlich ist jedes injizierte JavaScript auf irgendeine Weise erkennbar. Anti-Bot-Systeme können prüfen, ob `Object.getOwnPropertyDescriptor` eine überschriebene Eigenschaft offenlegt, ob die `toString()`-Methode einer Funktion nicht mehr `[native code]` zurückgibt (was darauf hindeutet, dass sie manipuliert wurde), oder ob Daten im Window-Kontext nicht mit dem Worker-Thread-Kontext übereinstimmen. Workarounds helfen nur begrenzt, aber es wird immer eine Möglichkeit geben, JS-Injektion zu erkennen, wenn man tief genug sucht.
#### Camoufoxs Ansatz
Da Camoufox Aufrufe auf der C++-Implementierungsebene des Browsers abfängt, erscheinen alle manipulierten Objekte und Eigenschaften nativ. Es gibt keine JavaScript-Manipulation, die erkannt werden könnte.
Camoufox versucht auch, konsistente und glaubwürdige Fingerabdrücke mit Browserforge zu erzeugen. Dies kann jedoch immer noch durch komplexe Fingerabdruck-Erkennungsmethoden wie nicht übereinstimmende Daten (wie zuvor beschrieben) erkannt werden.
<hr width=50>
### CDP-basierte Bibliotheken
CDP (Chrome DevTools Protocol) ist ein in Chromium und Firefox integriertes Automatisierungsprotokoll. CDP unternimmt jedoch keine Anstrengungen, die Tatsache zu verbergen, dass es sich um ein Automatisierungsprotokoll handelt, und legt einen Großteil seiner Funktionalität im Seitenbereich offen. Einige gängige Methoden sind die Überprüfung, ob `navigator.webdriver` wahr ist, das Abfangen des Stack-Debuggers, die Überprüfung auf Variablen, die ChromeDriver in das Dokumentobjekt zur internen Kommunikation injiziert, und mehr.
#### Camoufoxs Ansatz
Während Playwright CDP zur Steuerung von Chromium verwendet, nutzt es _Juggler_ für Firefox. Juggler ist ein benutzerdefiniertes Protokoll, das entwickelt wurde, bevor Firefox CDP unterstützte ([ursprüngliches Repo](https://github.com/puppeteer/juggler)). Es ist ein eigenständiges Modul innerhalb von Firefox und kein Teil des Kernbrowsers. Dies erleichtert die Bearbeitung und Kontrolle dessen, was der Seite offengelegt wird.
Camoufox patcht Juggler, um ihm eine eigene isolierte 'Kopie' der Seite zur Verfügung zu stellen, mit der es arbeiten kann. Playwright kann seine eigene Version der Seite frei lesen und bearbeiten. Für Playwright scheint alles normal zu funktionieren, aber die echte Seite wird von diesen Änderungen überhaupt nicht beeinflusst. Die Seite kann auch nicht erkennen, wenn Dinge gelesen werden (durch Tricks wie das Hijacking von Gettern) oder wenn Listener hinzugefügt werden, um Elemente zu überwachen.
Zusätzlich sendet Juggler seine Eingaben direkt über die ursprünglichen Benutzereingabe-Handler von Firefox, was bedeutet, dass sie auf exakt dieselbe Weise behandelt werden, als ob Sie den Browser normal verwenden würden. Camoufox patcht auch den Headless-Modus von Firefox, sodass er genauso aussieht, als würde er in einem normalen Fenster laufen. Als Fallback kann die Python-Bibliothek Camoufox jedoch in einer [virtuellen Anzeige](https://camoufox.com/python/virtual-display/) ausführen, falls der Headless-Modus jemals leckt.
---
<h1 align="center">Build-System</h1>
> [!WARNING]
> Der folgende Inhalt richtet sich an diejenigen, die am Bau & Debuggen von Camoufox interessiert sind. Für Playwright-Nutzungsanweisungen siehe [hier](https://github.com/daijro/camoufox/tree/main/pythonlib#camoufox-python-interface).
### Übersicht
Hier ist ein Diagramm des Build-Systems und der zugehörigen Make-Befehle:```mermaid
graph TD
FFSRC[Firefox Source] -->|make fetch| REPO
subgraph REPO[Camoufox Repository]
PATCHES[Fingerprint masking patches]
ADDONS[uBlock & B.P.C.]
DEBLOAT[Debloat/optimizations]
SYSTEM_FONTS[Win, Mac, Linux fonts]
JUGGLER[Patched Juggler]
end
subgraph Local
REPO -->|make dir| PATCH[Patched Source]
PATCH -->|make build| BUILD[Built]
BUILD -->|make package-linux| LINUX[Linux Portable]
BUILD -->|make package-windows| WIN[Windows Portable]
BUILD -->|make package-macos| MAC[macOS Portable]
end
This was originally based on the LibreWolf build system.
Build CLI
[!WARNING] Camoufox's build system is designed to be used in Linux. WSL will not work!
First, clone this repository with Git:```bash git clone --depth 1 https://github.com/daijro/camoufox cd camoufox
Als Nächstes erstellen Sie den Quellcode von Camoufox mit dem folgenden Befehl:```bash
make dir
Vor dem Bootstrapping installieren Sie die System-Build-Abhängigkeiten mit dem Hilfsskript. Es erkennt Ihre Plattform und installiert alles, was der Build benötigt (Python ≥ 3.11, Rust, aria2, p7zip, go, msitools, wget, sqlite und die wichtigsten Build-Tools) mit dem entsprechenden Paketmanager — Homebrew unter macOS oder apt/dnf/pacman unter Linux:```bash
bash scripts/install-deps.sh
> [!NOTE]
> Der Abhängigkeitsinstallateur wurde bisher nur auf macOS getestet.
Danach müssen Sie Ihr System bootstrappen, um Camoufox erstellen zu können. Sie müssen dies nur einmal tun. Es wird durch Ausführen des folgenden Befehls durchgeführt:```bash
make bootstrap
Schließlich können Sie Camoufox mit dem folgenden Befehl erstellen und verpacken:```bash python3 multibuild.py --target linux windows macos --arch x86_64 arm64 i686
Für neue Builds wird `i686` nur für Windows unterstützt. Nicht unterstützte Ziel-/Architektur-Kombinationen werden übersprungen.
<details>
<summary>
CLI-Parameter
</summary>```bash
Options:
-h, --help show this help message and exit
--target {linux,windows,macos} [{linux,windows,macos} ...]
Target platforms to build
--arch {x86_64,arm64,i686} [{x86_64,arm64,i686} ...]
Target architectures to build for each platform
--bootstrap Bootstrap the build system
--clean Clean the build directory before starting
Example:
$ python3 multibuild.py --target linux windows macos --arch x86_64 arm64
Docker verwenden
Camoufox kann auf allen Plattformen mit Docker erstellt werden.
- Erstellen Sie das Docker-Image, das den Firefox-Quellcode enthält:```bash docker build -t camoufox-builder .
2. Erstelle Camoufox-Patches für eine Zielplattform und -architektur:```bash
docker run -v "$(pwd)/dist:/app/dist" camoufox-builder --target <os> --arch <arch>
Wie kann ich mein lokales ~/.mozbuild-Verzeichnis verwenden?
Wenn Sie das .mozbuild-Verzeichnis des Hosts verwenden möchten, können Sie stattdessen den folgenden Befehl verwenden, um den Docker auszuführen:```bash
docker run
-v "$HOME/.mozbuild":/root/.mozbuild:rw,z
-v "$(pwd)/dist:/app/dist"
camoufox-builder
--target
--arch
</details>
<details>
<summary>
Docker CLI-Parameter
</summary>```bash
Options:
-h, --help show this help message and exit
--target {linux,windows,macos} [{linux,windows,macos} ...]
Target platforms to build
--arch {x86_64,arm64,i686} [{x86_64,arm64,i686} ...]
Target architectures to build for each platform
--bootstrap Bootstrap the build system
--clean Clean the build directory before starting
Example:
$ docker run -v "$(pwd)/dist:/app/dist" camoufox-builder --target windows macos linux --arch x86_64 arm64 i686
Build-Artefakte erscheinen nun im Ordner dist/.
Entwicklungswerkzeuge
Dieses Repository enthält eine Entwickler-UI unter scripts/developer.py:``` make edits
Patches können hier bearbeitet, erstellt, entfernt und verwaltet werden.
<img src="https://assets.kitploit.com/production/public/readmes/41473/19bffc384c42fb6eb69b3ee59622daed4770cf0f11ffe39401eca57a7d2457f4.png">
### Wie man einen Patch erstellt
1. Klicken Sie in der Entwickleroberfläche auf **Reset workspace**.
2. Nehmen Sie bei Bedarf Änderungen im `camoufox-*/`-Ordner vor. Sie können Ihre Änderungen mit `make build` und `make run` testen.
3. Klicken Sie nach Abschluss der Änderungen auf **Write workspace to patch** und speichern Sie die Patch-Datei.
### Wie man an einem bestehenden Patch arbeitet
1. Klicken Sie in der Entwickleroberfläche auf **Edit a patch**.
2. Wählen Sie den Patch aus, den Sie bearbeiten möchten. Ihr Arbeitsbereich wird auf den Zustand des ausgewählten Patches zurückgesetzt.
3. Klicken Sie nach Abschluss der Änderungen auf **Write workspace to patch** und überschreiben Sie die vorhandene Patch-Datei.
---
## Leck-Debugging
Dies ist ein Flussdiagramm, das meinen Prozess zur Bestimmung von Lecks ohne Deobfuscation von WAF-Javascript zeigt. Die Methode führt schrittweise Camoufox-Funktionen in den Quellcode von Firefox ein, bis die Testseite einen Hinweis gibt.
Dieser Prozess erfordert ein Linux-System und setzt voraus, dass Sie die Firefox-Build-Tools installiert haben (siehe [hier](https://github.com/daijro/camoufox?tab=readme-ov-file#build-cli)).
<details>
<summary>
Flussdiagramm anzeigen...
</summary>```mermaid
flowchart TD
A[Start] --> B[Does website flag in the official Firefox?]
B -->|Yes| C[Likely bad IP/rate-limiting. If the website fails on both headless and headful mode on the official Firefox distribution, the issue is not with the browser.]
B -->|No| D["Run make ff-dbg(1) and build(2) a clean distribution of Firefox. Does the website flag in Firefox **headless** mode(4)?"]
D -->|Yes| E["Does the website flag in headful mode(3) AND headless mode(4)?"]
D -->|No| F["Open the developer UI(5), apply config.patch, then rebuild(2). Does the website still flag(3)?"]
E -->|No| G["Enable privacy.resistFingerprinting in the config(6). Does the website still flag(3)?"]
E -->|Yes| C
G -->|No| H["In the config(6), enable FPP and start omitting overrides until you find the one that fixed the leak."]
G -->|Yes| I[If you get to this point, you may need to deobfuscate the Javascript behind the website to identify what it's testing.]
F -->|Yes| K["Open the developer UI, apply the playwright bootstrap patch, then rebuild. Does it still flag?"]
F -->|No| J["Omit options from camoufox.cfg(6) and rerun(3) until you find the one causing the leak."]
K -->|No| M[Juggler needs to be debugged to locate the leak.]
K -->|Yes| L[The issue has nothing to do with Playwright. Apply the rest of the Camoufox patches one by one until the one causing the leak is found.]
M --> I
Zitierte Befehle
| # | Befehl | Beschreibung |
|---|---|---|
| (1) | make ff-dbg | Einrichtung von vanilla Firefox mit minimalen Patches. |
| (2) | make build | Erstelle den Quellcode. |
| (3) | make run | Führt den erstellten Browser aus. |
| (4) | make run args="--headless https://test.com" | Führt eine URL im Headless-Modus aus. Alle Weiterleitungen werden zur Konsolenausgabe gedruckt, um festzustellen, ob der Test bestanden wurde. |
| (5) | make edits | Öffnet die Entwickleroberfläche. Ermöglicht dem Benutzer das Anwenden/Rückgängigmachen von Patches und zeigt an, welche Patches aktuell angewendet sind. |
| (6) | make edit-cfg | Bearbeitet camoufox.cfg im standardmäßigen Systemeditor. |
Danksagungen
Entblähung & Referenzen:
- LibreWolf: Entblähungspatches & Build-System-Inspiration
- BetterFox: Geschwindigkeits- und Entblähungseinstellungen
- Ghostery: Entblähungsreferenz (Onboarding-Nachrichten deaktivieren)
Web Scraping & Testen:
- riflosnake/HumanCursor: Originaler menschenähnlicher Cursor-Bewegungsalgorithmus, portiert nach C++
- CreepJS, Browserleaks, BrowserScan - Wertvolle Leak-Testseiten
UI-Design:
- Jamir-boop/minimalisticfox: Inspirierte das minimale CSS-Design von Camoufox (Link)