العودة إلى التحديثات
New releaseAug 21, 2026

camoufox v152.0.4-beta.29

🦊 متصفح مضاد للكشف

مشاركة

Camoufox

Camoufox هو متصفح مفتوح المصدر مضاد للاكتشاف مبني لاستخراج بيانات الويب وعوامل الذكاء الاصطناعي. 🦊

daijro%2Fcamoufox | Trendshift
Total Downloads Monthly Downloads Weekly Downloads

⚠️ هذا المشروع قيد التطوير. قد لا يكون مناسبًا للاستخدام الإنتاجي المستقر. ⚠️


[!NOTE] جميع أحدث الوثائق متاحة على camoufox.com.

[!NOTE] تطوير المتصفح نشط على github.com/CloverLabsAI/camoufox و github.com/VulpineOS/VulpineOS.
يُستخدم هذا المستودع لدمج إصدارات نقاط التفتيش ويجب التعامل معه باعتباره النسخة الرئيسية.


الرعاة

عرض/طي الكل

Scrapfly.io Scrapfly هو حل بمستوى المؤسسات يوفّر واجهة برمجة تطبيقات لكشط الويب تهدف إلى تبسيط عملية الكشط عبر إدارة كل شيء: عرض المتصفح الحقيقي، ووكلاء متناوبين، وبصمات (TLS وHTTP والمتصفح) لتجاوز جميع أنظمة مكافحة البوتات الرئيسية. كما يتيح Scrapfly إمكانية المراقبة من خلال توفير لوحة تحليلات وقياس معدل النجاح/معدل الحظر بالتفصيل.
cloverlabs.ai Clover Labs هو استوديو مشاريع مقرّه تورونتو يبني عوامل ذكاء اصطناعي للنمو والتوزيع.
color horizontal SerpApi، واجهة برمجة تطبيقات للبحث على الويب لكشط Google ومحركات البحث الأخرى عبر واجهة برمجة تطبيقات بسيطة.
color horizontal Talordata هي واجهة برمجة تطبيقات بسيطة للبحث على الويب لكشط Google ومحركات البحث الأخرى بتكلفة أقل بكثير. احصل على 1000 طلب مجاني عند التسجيل، وادفع فقط 0.25 دولارًا لكل 1000 استجابة ناجحة — بدون أي رسوم على عمليات الكشط الفاشلة.
استخدم رمز القسيمة CAMOUFOX للحصول على خصم 10% على الوكلاء السكنيين. [Discord]
color horizontal بيانات ويب تصمد أمام أنظمة مكافحة البوتات.
Crawlbase يمنح المطوّرين وفرق الذكاء الاصطناعي بيانات موثوقة على نطاق واسع: زاحف بنسبة نجاح 99%، وواجهة برمجة تطبيقات للزحف، ووكلاء ذكاء اصطناعي أذكياء، وخادم Web MCP Server يجتاز العقبات، حتى لا تتعطل أدوات الكشط والعوامل لديك. أنت تبني، ونحن نتولى البنية التحتية.

احصل على خصم 15% على أول 3 أشهر باستخدام الرمز CAMOUFOXcrawlbase.com

scrappey Scrappey هي واجهة برمجة تطبيقات لكشط الويب تفرض رسومًا على عمليات الكشط الناجحة فقط بنظام الدفع أولاً بأول — بدون اشتراكات. اكشط المواقع المعقدة. وكلاء سكنيون مشمولون، بدون رسوم وكيل مخفية أو أرصدة منتهية الصلاحية. واجهة برمجة واحدة للـ HTTP المباشر، وعرض المتصفح الكامل، وصفحات JavaScript الثقيلة، ولقطات الشاشة، والجلسات، وأكثر من 30 إجراءً في المتصفح وأكثر من 200 جلسة متزامنة في الوقت نفسه — يثق بها أكثر من 1000 مطوّر وعامل ذكاء اصطناعي. احصل على خصم 10% باستخدام الرمز CAMOUFOX.

مزودو البروكسي

من المتوقع استخدام Camoufox مع وكلاء متناوبين (يُفضَّل عناوين IP سكنية). اطّلع على هؤلاء المزودين:

proxyempire 🚀 Camoufox × ProxyEmpire
هل تستخدم Camoufox؟ طبقة البروكسي لديك هي التي تحدد ما إذا كنت ستتوسع — أم سيتم حظرك.
ProxyEmpire يوفّر:
• 🌍 أكثر من 30 مليون عنوان IP سكني (أكثر من 170 دولة)
• 📱 وكلاء جوال 4G/5G
• 🔄 جلسات متناوبة وثابتة
• ⚡ جلسات متزامنة غير محدودة
• 🎯 استهداف جغرافي دقيق
• دعم HTTP وHTTPS وSOCKS5
مبني للكشط والأتمتة وسير عمل عالي التخفي.
🔥 عرض حصري - استخدم الرمز Camoufox30
احصل على خصم متكرر 30% (ليس للشهر الأول فقط). طوّر بروكسياتك. قلل عمليات الحظر. توسّع بشكل صحيح
birdproxies مرحبًا، بنينا BirdProxies لأن البروكسيات لا ينبغي أن تكون معقدة أو مبالغًا في أسعارها. وكلاء سكنيون ووكلاء ISP سريعون في أكثر من 195 موقعًا، وأسعار عادلة، ودعم حقيقي.
جرّب لعبتنا FlappyBird على الصفحة الرئيسية للحصول على بيانات مجانية!
جرّب الآن | Discord
rapidproxy RapidProxy - عزّز بياناتك ببروكسيات ممتازة.
🎁 جرّب البروكسيات مجانًا + استخدم الرمز RAPID10 للحصول على خصم 10%
لماذا تختار RapidProxy؟
• 🌍 أكثر من 90 مليون عنوان IP في أكثر من 200 دولة ومنطقة
• ♾️ لا انتهاء صلاحية لحركة المرور — استخدمها في أي وقت، دون ضغط
• 🔥 تزامن غير محدود لأقصى أداء
• 💰 يبدأ من 0.65 دولار فقط لكل غيغابايت — مبني للتوسع
• 📍 استهداف على مستوى المدينة للوصول الجغرافي الدقيق
• 🔄 تحكم مرن في الجلسات مصمم حسب احتياجاتك
لا تفوّت الفرصة — ابدأ نسختك التجريبية المجانية اليوم واختبر أداء بروكسي سريع ومستقر وقابل للتوسع مع RapidProxy.
swiftproxy Swiftproxy - بروكسيات سكنية عالية الأداء لجمع البيانات القابل للتوسع
مبني للمطورين الذين يحتاجون إلى بنية تحتية بروكسي موثوقة مضادة للاكتشاف. يوفّر Swiftproxy اتصالات مستقرة، ومعدلات نجاح عالية، وتحكمًا مرنًا للكشط والأتمتة واسعة النطاق.
• 🌍 أكثر من 195 موقعًا مع عناوين IP سكنية مُصدرة أخلاقيًا
• 🔄 جلسات متناوبة وثابتة مع استهداف جغرافي دقيق
• ⚡ محسّن لـمكافحة الحظر ومعدل النجاح المرتفع
• 🔌 دعم HTTP / HTTPS / SOCKS5
• 🧪 نسخة تجريبية مجانية 500MB للاختبار
• 💸 رمز خصم خاص لمستخدمي Camoufox: PROXY90 - 10%
الأفضل لـ: كشط الويب، الأتمتة، إدارة حسابات متعددة، واستخراج البيانات على نطاق واسع
mangoproxy MangoProxy هي خدمة بروكسي سكني وISP وجوال ومراكز بيانات مصممة للمهام الاحترافية حيث تهمّ الاستقرار والسرعة وإخفاء الهوية.
استخدم الرمز DAIJRO للحصول على خصم 8% على بروكسيات ISP الثابتة.
9proxy 9Proxy يوفّر وكلاء سكنيين ابتداءً من 0.018 دولار فقط لكل IP أو 0.68 دولار لكل غيغابايت. أكثر من 20 مليون عنوان IP عبر أكثر من 90 دولة. جلسات ثابتة أو متناوبة، تُدار من تطبيق سطح المكتب أو الجوال.
nodemaven NodeMaven: أكثر مزود بروكسي موثوقية مع أعلى جودة IP في السوق.
الحل الأفضل للأتمتة، وكشط الويب، وأبحاث SEO، وإدارة وسائل التواصل الاجتماعي.
NodeMaven يوفّر:
• جلسات ثابتة تصل إلى 7 أيام
• وقت تشغيل 99.9%
• تصفية IP: جميع البروكسيات لديها درجة احتيال أقل من 97%
• لا حاجة إلى KYC
• استرداد نقدي على حركة المرور - استهلك غيغابايت واكسب حتى 10% مرة أخرى
عرض خاص: استخدم الرمز CAMOUFOX35 للحصول على خصم 35% على البروكسيات.
proxidize Proxidize | وكلاء جوال وسكنيون لـ Camoufox
هل تشغّل Camoufox على نطاق واسع؟ إعداد المتصفح لديك هو نصف الحزمة فقط. طبقة البروكسي لديك مهمة أيضًا.
توفّر Proxidize وكلاء جوال وسكنيين مصممين للكشط، وأتمتة المتصفح، ومراقبة SEO، وعوامل الذكاء الاصطناعي، وسير عمل جمع البيانات.
لماذا Proxidize؟
• وكلاء جوال حقيقيون 4G و5G
• وكلاء سكنيون في أكثر من 195 دولة
• جلسات متناوبة وثابتة
• استهداف على مستوى المدينة ومزود الخدمة
• تزامن غير محدود
• دعم HTTP(S) وSOCKS5 وUDP عبر SOCKS
• لا حاجة لأجهزة أو إعداد DIY
مصمم للفرق التي تحتاج إلى بنية تحتية بروكسي موثوقة دون إدارة الأجهزة أو الخوادم أو تدوير البروكسي بأنفسهم.
عرض خاص لمستخدمي Camoufox: استخدم الرمز CAMOUFOX20 للحصول على خصم 20%.
ابدأ الآن: https://proxidize.com

مقدمة

Camoufox هو فرع من Firefox مصمم لكشط الويب وعوامل الذكاء الاصطناعي. وهو بلا واجهة رسومية (headless)، وغير قابل للاكتشاف، ومحسَّن للعمل على نطاق واسع. كل تشغيل يحصل على هوية جديدة مأخوذة من التوزيع الواقعي للأجهزة، بحيث يندمج مع حركة المرور العادية بدلاً من أن يبرز.

أبرز المزايا

  • مصمم لعوامل الذكاء الاصطناعي 🤖
    • Firefox خفيف ومنزوع التضخيم - سريع الإقلاع، منخفض التكلفة في التشغيل
    • توافق فوري مع Playwright عبر واجهة Python
    • غير مرئي لأنظمة مكافحة البوتات بحيث يمكنك تشغيل مجموعة عواملك محليًا أو في السحابة دون أن يتم تمييزها
  • غير قابل للاكتشاف بالتصميم 🎭
    • أتمتة الصفحة مخفية عن فحص JavaScript. راجع صفحة التخفي لمزيد من التفاصيل.
  • حقن بصمات الأصابع وتدويرها (بدون حقن JS!)
    • جميع خصائص navigator (الجهاز، نظام التشغيل، العتاد، المتصفح، إلخ) ✅
    • حجم الشاشة، الدقة، خصائص النافذة ومنطقة العرض ✅
    • انتحال الموقع الجغرافي، المنطقة الزمنية، اللغة المحلية، وIntl ✅
    • انتحال IP الخاص بـ WebRTC على مستوى البروتوكول ✅
    • الأصوات، معدل تشغيل الكلام، إلخ. ✅
    • والمزيد، الكثير الكثير!
  • مكافحة البصمة الرسومية
    • معاملات WebGL، الإضافات المدعومة، سمات السياق، وتنسيقات دقة التظليل ✅
    • انتحال الخطوط ومكافحة البصمة ✅
  • محسَّن للأتمتة
    • حركة ماوس شبيهة بالبشر 🖱️
    • يحجب الإعلانات ويلتف حولها 🛡️
    • لا حركات CSS 💨
  • خفيف الوزن ومحسَّن لكفاءة الذاكرة ⚡
  • حزمة PyPi للتحديثات والحقن التلقائي للبصمة 📦
  • يبقى محدثًا مع أحدث إصدار من Firefox 🕓

حقن البصمة

في Camoufox، يتم اعتراض البيانات على مستوى تنفيذ C++، ما يجعل التغييرات غير قابلة للاكتشاف عبر فحص JavaScript.

لانتحال خصائص بصمة فردية، مرّر JSON يحتوي على الخصائص المطلوب انتحالها إلى واجهة بايثون:```py

with Camoufox(config={"property": "value"}) as browser:

بيانات الإعداد التي لم يحددها المستخدم سيتم ملؤها تلقائيًا باستخدام بصمات [BrowserForge](https://github.com/daijro/browserforge)، التي تحاكي التوزيع الإحصائي لخصائص الأجهزة في حركة المرور الواقعية.

[[اطلع على الخصائص المنفذة](https://camoufox.com/fingerprint/)]

---

## استخدام Python

يتوافق Camoufox مع كود Playwright الحالي لديك. كل ما عليك فعله هو تغيير تهيئة المتصفح.

**Sync API**```python
from camoufox.sync_api import Camoufox

with Camoufox() as browser:
    page = browser.new_page()
    page.goto("https://example.com")

واجهة برمجة التطبيقات غير المتزامنة```python from camoufox.async_api import AsyncCamoufox

async with AsyncCamoufox() as browser: page = await browser.new_page() await page.goto("https://example.com")

[[التثبيت والاستخدام](https://camoufox.com/python/)]

### الاستفادة الكاملة من انتحال العتاد

للإصدارات المستقرة، يجب عليك دائمًا استخدام حزمة pip الرئيسية [`camoufox`](https://pypi.org/project/camoufox/). ومع ذلك، إذا كنت ترغب في الاستفادة من البصمات الخاصة بكل سياق وانتحال العتاد، فاستخدم حزمة [`cloverlabs-camoufox`](https://pypi.org/project/cloverlabs-camoufox/). يتم تحديث هذه الحزمة مع كل إصدار، بينما يتم إصدار الحزمة الرسمية مع تأخير.

تأكد من استخدام بيئة افتراضية لتجنب التعارض بين الحزمتين.

**التثبيت**```bash
pip install cloverlabs-camoufox

احصل على أحدث إصدار تجريبي من المتصفح (موصى به للحصول على أحدث التصحيحات)```bash python -m camoufox sync python -m camoufox set official/prerelease python -m camoufox fetch

**الاستخدام** — واجهة البرمجة مطابقة للحزمة الأصلية:```python
from camoufox.sync_api import Camoufox

with Camoufox() as browser:
    page = browser.new_page()
    page.goto("https://example.com")

إعدادات مسبقة لبصمات حقيقية (موصى بها لثنائيات v149+)

بشكل افتراضي، يتم توليد قيم البصمات بواسطة BrowserForge. لتحسين المراوغة أمام فحوصات الاتساق المعقدة، اختر تفعيل الإعدادات المسبقة المرفقة — بصمات حقيقية تم جمعها من حركة مرور Firefox الفعلية:```python with Camoufox(fingerprint_preset=True, os="macos") as browser: ...

المكتبة توجّه تلقائيًا حسب إصدار الثنائي: Firefox ≥ 149 يحمّل `fingerprint-presets-v150.json` (312 إعدادًا مسبقًا تغطي v149–v152، 67 لنظام macOS / 180 لنظام Windows / 65 لنظام Linux)؛ الثنائيات الأقدم تعود إلى الحزمة الأصلية. تتم إعادة كتابة سلاسل UA لتطابق الثنائي النشط، لذا فإن الاشتراك آمن عبر الإصدارات. مرّر قاموس إعدادات مسبقة بدلاً من `True` لتثبيت بصمة معينة.

---

## القدرات

فيما يلي قائمة بالتصحيحات والميزات المنفذة في Camoufox.

### انتحال البصمة

- انتحال خصائص Navigator (الجهاز، المتصفح، اللغة المحلية، إلخ.)
- دعم محاكاة حجم الشاشة، الدقة، إلخ.
- انتحال معاملات WebGL، الامتدادات المدعومة، سمات السياق، وتنسيقات دقة التظليل.
- انتحال أحجام منفذ العرض الداخلية والخارجية للنافذة
- انتحال معدل عينة AudioContext، وزمن الإخراج، والحد الأقصى لعدد القنوات
- انتحال أصوات الأجهزة ومعدلات التشغيل
- انتحال عدد الميكروفونات وكاميرات الويب ومكبرات الصوت المتاحة.
- تتم انتحال ترويسات الشبكة (Accept-Languages و User-Agent) لتطابق خصائص navigator
- انتحال عنوان IP الخاص بـ WebRTC على مستوى البروتوكول
- انتحال الموقع الجغرافي والمنطقة الزمنية واللغة المحلية
- انتحال Battery API
- إلخ.

### تصحيحات التخفي

- يتجنب تسريبات التنفيذ في العالم الرئيسي. كل جافاسكربت وكيل الصفحة معزول (sandboxed)
- يتجنب تسريبات سياق تنفيذ الإطارات
- يصلح اكتشاف `navigator.webdriver`
- يصلح اكتشاف وضع headless في Firefox عبر نوع المؤشر ([#26](https://github.com/daijro/camoufox/issues/26))
- أزال تصحيحات معالجة منع التكبير/عرض meta viewport التي قد تُحدث تسريبات
- يستخدم أحجام شاشة ونافذة غير افتراضية
- يعيد تمكين عزل محتوى fission
- يعيد تمكين PDF.js
- تغيير خصائص إعدادات أخرى قد تُحدث تسريبات
- حركة مؤشر شبيهة بالبشر

### مكافحة بصمة الخطوط

- يستخدم تلقائيًا خطوط النظام الصحيحة لوكيل المستخدم الخاص بك
- مرفق مع خطوط أنظمة Windows و Mac و Linux
- يمنع بصمة مقاييس الخطوط عبر إزاحة عشوائية لتباعد الأحرف

### دعم Playwright

- تنفيذ مخصص لـ Playwright لأحدث إصدار من Firefox
- تصحيحات إعدادات متنوعة لتجنب اكتشاف البوتات

### إزالة التضخم/التحسينات

- أزال/عطّل _العديد والعديد_ من خدمات Mozilla. يعمل أسرع من Mozilla Firefox الأصلي ويستخدم ذاكرة أقل (200 ميجابايت)
- تصحيحات من LibreWolf و Ghostery للمساعدة في إزالة التتبع والانتفاخ
- إعدادات إزالة التضخم من PeskyFox و LibreWolf وغيرها
- تحسينات السرعة والشبكة من FastFox
- أزال جميع حركات CSS
- تنسيق بسيط (Minimalistic)
- إلخ.

### الإضافات

- تحميل إضافات Firefox بدون خادم تصحيح أخطاء عبر تمرير قائمة مسارات إلى خاصية `addons`
- أضاف uBlock Origin مع فلاتر خصوصية مخصصة
- لا يُسمح للإضافات بفتح تبويبات
- يتم تمكين الإضافات تلقائيًا في وضع التصفح الخاص
- يتم تثبيت الإضافات تلقائيًا على شريط الأدوات
- يصلح تسريبات DNS مع جلب uBO المسبق

### واجهة بايثون

- يولّد ويحقن تلقائيًا خصائص جهاز فريدة في Camoufox بناءً على توزيعها الواقعي
- حقن بصمة WebGL وتدويرها
- يستخدم خطوط النظام الصحيحة ومزج الألوان الفرعي (subpixel antialiasing) والتوجيه (hinting) بناءً على نظام التشغيل المستهدف
- يتجنب اكتشاف البروكسي عبر حساب الموقع الجغرافي والمنطقة الزمنية واللغة المحلية المستهدفة من منطقة البروكسي المستهدفة
- يحسب وينتحل لغة المتصفح بناءً على توزيع المتحدثين باللغة في المنطقة المستهدفة للبروكسي
- استضافة خادم بعيد لاستخدام Camoufox مع لغات أخرى تدعم Playwright
- مخزن عرض افتراضي مدمج لتشغيل Camoufox بواجهة رسومية على خادم بدون واجهة
- تبديل تحميل الصور و WebRTC و WebGL
- إلخ.

> [!NOTE]
> لا يدعم Camoufox **بشكل كامل** حقن بصمات Chromium. بعض أنظمة WAF (مثل [Interstitial](https://nopecha.com/demo/cloudflare)) تفحص سلوك محرك Spidermonkey، وهو أمر يستحيل انتحاله.

---

# نظرة عامة على التخفي

## كيف يُخفي Camoufox مكتبة الأتمتة الخاصة به

> [!WARNING]
> **الحالة الحالية اعتبارًا من 2026**:
> حدثت فجوة استمرت عامًا في الصيانة بسبب ظرف شخصي. انخفض أداء Camoufox بسبب إصدار Firefox الأساسي وعدم اتساق بصمات مكتشف مؤخرًا. **Camoufox قيد التطوير النشط حاليًا.**

في Camoufox، تكون جميع أكواد وكيل الصفحة الداخلية لـ Playwright معزولة ومفصولة. وهذا يجعل من المستحيل على الصفحة اكتشاف وجود Playwright عبر فحص الجافاسكربت.

عادةً، يحقن Playwright بعض الجافاسكربت في الصفحة مثل `window.__playwright__binding__` لتنفيذ إجراءات مثل الاستعلام عن العناصر، أو تقييم الجافاسكربت، أو تشغيل سكربتات التهيئة، وهو ما يمكن أن تكتشفه المواقع. في Camoufox، تتم معالجة هذه الإجراءات في نطاق معزول خارج الصفحة. بعبارة أخرى، لم يعد بإمكان المواقع "رؤية" أي جافاسكربت يحقنه Playwright عادةً. وهذا يمنع آثار Playwright تمامًا.

ومع ذلك، حتى مع إخفاء مكتبة الأتمتة، فإن Camoufox ليس محصّنًا ضد عدم اتساق تدوير البصمات. وهذا لا يزال يتطلب صيانة لاكتشافه وإصلاحه.

### تفاعلات الصفحة

تعمل أنظمة مكافحة البوتات أيضًا على تشغيل سكربتات من جهة العميل لمراقبة سلوكك. على سبيل المثال، تبحث عن أنماط في حركات الماوس، والنقرات، والتمرير، والتوقيت بين الإجراءات.

<video controls src="https://github.com/user-attachments/assets/6d33d6af-3537-4603-bf24-6bd3f4f8f455" width="200px" loop muted></video>

يبذل Camoufox قصارى جهده في خوارزمية حركة الماوس الشبيهة بالبشر. خوارزمية الحركة الطبيعية مأخوذة أصلًا من [HumanCursor الخاص بـ riflosnake](https://github.com/riflosnake/HumanCursor) وأُعيدت كتابتها بلغة C++ وعدّلت لمسارات أكثر إدراكًا للمسافة.

ومع ذلك، هذا ليس مثاليًا. قد يظل قابلاً للاكتشاف مع تحليل متطور بما يكفي. (عمل قيد التقدم للمستقبل)

---

## كيف يدوّر Camoufox الهويات

تحتاج وكلاء الذكاء الاصطناعي إلى العمل عبر جلسات عديدة دون التعرض للإبلاغ أو تقييد المعدل. تدوير عنوان IP الخاص بك ليس كافيًا — كل جلسة متصفح تحمل آلاف الإشارات التي تنشئ **بصمة** فريدة. يمكن للموقع رؤية نظام التشغيل، وحدة معالجة الرسومات، دقة الشاشة، الخطوط، المنطقة الزمنية، والمزيد. إذا كانت هذه الإشارات غير متسقة أو غير معتادة، فسيتم حظرك.

### توزيع الحصة السوقية

حتى لو كنت تدوّر عنوان IP لكل مثيل بوت يعمل، يمكن لجدران حماية الوصول للويب استخدام تعلّم الآلة لتحليل حركة المرور الواردة لاكتشاف ما إذا كانت غير طبيعية. إذا كانت حصة Linux السوقية 5% ثم أصبحت فجأة 20%، فهذا مؤشر خطر. سيطالبون جميع مستخدمي Linux دون قيد أو شرط بإكمال كابتشا.

يستخدم Camoufox مولّد بصمات [BrowserForge](https://github.com/daijro/browserforge) لمحاكاة التوزيع الإحصائي لبيانات الأجهزة في حركة المرور الواقعية. على سبيل المثال، سيجعل Camoufox متصفحك يبدو كمستخدم Linux بنسبة 5% من الوقت. ومن هذه الـ 5%، سينتحل دقة شاشة 2560x1440 بنسبة 9.5% من الوقت ووحدة معالجة رسومات Intel HD بنسبة 27.5% من الوقت.

### كيف يمكن اكتشاف Camoufox؟

يمكن لـ Camoufox انتحال بصمات بحصة سوقية صحيحة. ومع ذلك، **يجب أن تكون البصمات متسقة داخليًا أيضًا.** وكيل مستخدم Windows مع وحدة معالجة رسومات Apple M1، ووكيل مستخدم MacOS مع عارض DirectX الخاص بـ Windows، وجهاز محمول بدقة شاشة سطح مكتب — كلها مستحيلة، وستُعلَّم باعتبارها مريبة.

من بين آلاف نقاط البيانات الممكنة التي يجب تغييرها لإنشاء بصمة منتحلة قابلة للتصديق، حيث يجب أن يكون كل تغيير متسقًا مع الآخرين، لا ينجح Camoufox دائمًا. يختبر مزودو مكافحة البوتات Camoufox مرارًا وتكرارًا للعثور حتى على عدم اتساق واحد فريد، ثم يحدّثون سكربتاتهم الخلفية فورًا لاختباره.

---

## كيف يقارن Camoufox بالحلول الأخرى؟

### الحلول القائمة على الجافاسكربت

في الماضي، حاول المطورون حقن الجافاسكربت لانتحال هذه القيم، لكنه لا يعمل بشكل موثوق لأن الجافاسكربت لا يمكنه انتحال كل شيء. التغطية غير المكتملة تسبب بصمات غير متسقة. على سبيل المثال، سيقوم نظام مكافحة البوتات بوضع علامة عليك إذا كان User Agent لطلب الشبكة لا يطابق User Agent الخاص بـ navigator.

بالإضافة إلى ذلك، يمكن اكتشاف جميع الجافاسكربت المحقونة بطريقة ما. يمكن لأنظمة مكافحة البوتات التحقق مما إذا كان `Object.getOwnPropertyDescriptor` يكشف عن خاصية مكتوبة فوق أخرى، أو إذا كانت دالة `toString()` لم تعد تُرجع `[native code]` (مما يكشف أنها اختُطفت)، أو إذا كانت البيانات في سياق النافذة لا تطابق سياق خيط العامل (worker thread). الحلول البديلة لا توصلك إلا إلى حد معين، لكن سيكون هناك دائمًا طريقة لاكتشاف حقن الجافاسكربت إذا بحثت بعمق كافٍ.

#### نهج Camoufox

نظرًا لأن Camoufox يعترض الاستدعاءات على مستوى تنفيذ C++ للمتصفح، فإن جميع الكائنات والخصائص المختطفة تظهر أصلية. لا يوجد اختطاف جافاسكربت يمكن اكتشافه.

يحاول Camoufox أيضًا توليد بصمات متسقة وقابلة للتصديق باستخدام Browserforge. ومع ذلك، لا يزال هذا قابلاً للاكتشاف عبر طرق معقدة لاكتشاف البصمات مثل عدم تطابق البيانات (كما وصفنا سابقًا).

<hr width=50>

### المكتبات القائمة على CDP

CDP (بروتوكول أدوات مطوري Chrome) هو بروتوكول أتمتة مدمج في Chromium و Firefox. ومع ذلك، لا يبذل CDP أي جهد لإخفاء حقيقة أنه بروتوكول أتمتة، ويعرض الكثير من وظائفه في نطاق الصفحة. بعض الطرق الشائعة هي التحقق مما إذا كان `navigator.webdriver` صحيحًا، أو اكتشافه أثناء قراءة مصحح الأخطاء المكدسي (stack debugger)، أو فحص متغيرات يحقنها ChromeDriver في كائن المستند للاتصال الداخلي، والمزيد.

#### نهج Camoufox

بينما يستخدم Playwright بروتوكول CDP للتحكم في Chromium، فإنه يستخدم _Juggler_ لـ Firefox. Juggler هو بروتوكول مخصص طُوّر قبل أن يدعم Firefox بروتوكول CDP ([المستودع الأصلي](https://github.com/puppeteer/juggler)). وهو وحدة مميزة داخل Firefox، وليست جزءًا من نواة المتصفح. وهذا يجعل من الأسهل تعديل والتحكم فيما يُكشف للصفحة.

يصحّح Camoufox Juggler ليمنحه "نسخة" معزولة خاصة به من الصفحة للعمل عليها. يمكن لـ Playwright قراءة وتعديل نسخته الخاصة من الصفحة بحرية. يبدو كل شيء يعمل بشكل طبيعي بالنسبة له، لكن الصفحة الحقيقية غير متأثرة تمامًا بهذه التغييرات. كما لا يمكن للصفحة اكتشاف متى تتم قراءة الأشياء (عبر حيل مثل اختطاف الـ getters) أو إضافة مستمعين لمراقبة العناصر.

بالإضافة إلى ذلك، يرسل Juggler مدخلاته مباشرة عبر معالجات إدخال المستخدم الأصلية في Firefox، مما يعني أنها تُعالج بالطريقة نفسها تمامًا كما لو كنت تستخدم المتصفح بشكل طبيعي. كما يصحّح Camoufox وضع headless في Firefox ليبدو كما لو كان يعمل في نافذة عادية. ولكن كخطة احتياطية، يمكن لمكتبة بايثون تشغيل Camoufox في [شاشة افتراضية](https://camoufox.com/python/virtual-display/) إذا تسرب وضع headless يومًا ما.

---

<h1 align="center">نظام البناء</h1>

> [!WARNING]
> المحتوى أدناه مخصص للمهتمين ببناء وتصحيح أخطاء Camoufox. لتعليمات استخدام Playwright، انظر [هنا](https://github.com/daijro/camoufox/tree/main/pythonlib#camoufox-python-interface).

### نظرة عامة

فيما يلي رسم تخطيطي لنظام البناء وأوامر make المرتبطة به:```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

كان هذا مبنيًا في الأصل على نظام بناء LibreWolf.

واجهة CLI للبناء

[!WARNING] نظام بناء Camoufox مصمم للاستخدام على Linux. لن يعمل WSL!

أولًا، استنسخ هذا المستودع باستخدام Git:```bash git clone --depth 1 https://github.com/daijro/camoufox cd camoufox

بعد ذلك، قم ببناء الكود المصدري لـ Camoufox باستخدام الأمر التالي:```bash
make dir

قبل التمهيد، ثبّت تبعيات بناء النظام باستخدام السكربت المساعد. يكتشف السكربت منصتك ويُثبّت كل ما يحتاجه البناء (Python ≥ 3.11، Rust، aria2، p7zip، go، msitools، wget، sqlite، وأدوات البناء الأساسية) باستخدام مدير الحزم المناسب — Homebrew على macOS، أو apt/dnf/pacman على Linux:```bash bash scripts/install-deps.sh

> [!NOTE]
> لم يتم اختبار مثبّت التبعيات حتى الآن إلا على نظام macOS.

بعد ذلك، عليك تهيئة نظامك لتتمكن من بناء Camoufox. ما عليك سوى القيام بذلك مرة واحدة فقط، ويتم ذلك عن طريق تشغيل الأمر التالي:```bash
make bootstrap

أخيرًا، يمكنك بناء وتغليف Camoufox باستخدام الأمر التالي:```bash python3 multibuild.py --target linux windows macos --arch x86_64 arm64 i686

بالنسبة للبناءات الجديدة، `i686` مدعوم فقط لنظام Windows. يتم تخطي مجموعات الهدف/البنية غير المدعومة.

<details>
<summary>
معلمات CLI
</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

يمكن بناء Camoufox عبر Docker على جميع المنصات.

  1. أنشئ صورة Docker التي تحتوي على الكود المصدري لـ Firefox:```bash docker build -t camoufox-builder .
2. ابنِ رقع Camoufox لمنصة وبنية معمارية مستهدفة:```bash
docker run -v "$(pwd)/dist:/app/dist" camoufox-builder --target <os> --arch <arch>
كيف يمكنني استخدام دليلي المحلي ~/.mozbuild؟

إذا كنت تريد استخدام دليل .mozbuild الخاص بالمضيف، يمكنك استخدام الأمر التالي بدلاً من ذلك لتشغيل docker:```bash docker run
-v "$HOME/.mozbuild":/root/.mozbuild:rw,z
-v "$(pwd)/dist:/app/dist"
camoufox-builder
--target
--arch

</details>

<details>
<summary>
معلمات Docker CLI
</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

ستظهر الآن القطع الأثرية للبناء تحت مجلد dist/.


أدوات التطوير

يأتي هذا المستودع مع واجهة مستخدم للمطورين ضمن scripts/developer.py:``` make edits

يمكن تعديل التصحيحات وإنشاؤها وإزالتها وإدارتها من هنا.

<img src="https://assets.kitploit.com/production/public/readmes/41473/19bffc384c42fb6eb69b3ee59622daed4770cf0f11ffe39401eca57a7d2457f4.png">

### كيفية إنشاء تصحيح

1. في واجهة المطور، انقر على **إعادة تعيين مساحة العمل**.
2. قم بإجراء التغييرات اللازمة في مجلد `camoufox-*/`. يمكنك اختبار تغييراتك باستخدام `make build` و `make run`.
3. بعد الانتهاء من إجراء التغييرات، انقر على **كتابة مساحة العمل إلى تصحيح** واحفظ ملف التصحيح.

### كيفية العمل على تصحيح موجود

1. في واجهة المطور، انقر على **تحرير تصحيح**.
2. اختر التصحيح الذي تريد تحريره. ستتم إعادة تعيين مساحة العمل إلى حالة التصحيح المحدد.
3. بعد الانتهاء من إجراء التغييرات، اضغط على **كتابة مساحة العمل إلى تصحيح** واستبدل ملف التصحيح الموجود.

---

## تصحيح أخطاء التسريب

هذا مخطط تدفق يوضح عمليتي لتحديد التسريبات دون إزالة تشويش جافاسكريبت WAF. تعيد الطريقة تقديم ميزات Camoufox تدريجيًا إلى الكود المصدري لفايرفوكس حتى يرفع موقع الاختبار علامة التنبيه.

تتطلب هذه العملية نظام لينكس ويفترض أنك قمت بتثبيت أدوات بناء فايرفوكس (انظر [هنا](https://github.com/daijro/camoufox?tab=readme-ov-file#build-cli)).

<details>
<summary>
انظر مخطط التدفق...
</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

الأوامر المذكورة

#الأمرالوصف
(1)make ff-dbgإعداد Firefox الأصلي مع الحد الأدنى من التصحيحات.
(2)make buildبناء الكود المصدري.
(3)make runتشغيل المتصفح المبني.
(4)make run args="--headless https://test.com"تشغيل عنوان URL في الوضع headless. ستُطبع جميع عمليات إعادة التوجيه إلى وحدة التحكم لتحديد ما إذا كان الاختبار قد نجح.
(5)make editsيفتح واجهة المطوّر. تتيح للمستخدم تطبيق/تراجع التصحيحات ومعرفة التصحيحات المطبّقة حاليًا.
(6)make edit-cfgتحرير camoufox.cfg في محرر النظام الافتراضي.

شكر وتقدير

إزالة التضخم والمراجع:

استخراج بيانات الويب والاختبار:

تخصيص واجهة المستخدم:

الفئات