
محرك كروميوم متخفي يمنع برامج الكشط ووكلاء المتصفح من التعرض للحظر، بتغيير سطر واحد من الكود.
محرك Chromium خفي
Fortress هو محرك Chromium خفي يمنع أدوات السحب وعوامل المتصفح الخاصة بك من الحظر، مع تغيير سطر واحد من الكود. تكشف كاشفات البوت عن الأتمتة من خلال قراءة بصمة المتصفح؛ يصحح Fortress تلك البصمة داخل C++ في Chromium، بحيث يظهر المتصفح كتثبيت عادي لـ Chrome. ينهي أدوات السحب عملياتها، وتصل العوامل إلى الصفحات التي أُرسلت إليها، وتقرؤها CreepJS وSannysoft وBrowserScan وCloudflare Turnstile المباشر كإنسان. وجّه Playwright أو Puppeteer الحالي الخاص بك إلى Fortress عبر CDP، ولن يتغير أي شيء آخر في الكود الخاص بك.
Blink · V8 · BoringSSL مُصححة داخل الشجرة · WebGL المدعوم بـ ANGLE / D3D11 · TLS المتناسق مع JA3/JA4 · إعادة تأسيس المنبع شهريًا · إصدارات قابلة للتكرار ومقيّدة بالتحدي
34تصحيحات C++ ذات سطح واحد |
0%CreepJSبدون رأس / خفي |
عبر كل |
BSD-3محرك مفتوح،أعد بناؤه بنفسك |

لقطة غير محررة لملف Fortress الثنائي في نافذة حقيقية: يجتاز تحدي Cloudflare المباشر، ويحوّل bot.sannysoft.com إلى اللون الأخضر بالكامل، ثم يُظهر BrowserScan “Normal”. أعد الإنتاج باستخدام tools/gauntlet.py.
تكافؤ الكود الأصليكل محصل مزيف هو محصل C++: |
CDP بالتوصيل المباشرCDP خام بنمط nodriver على |
يجتاز التحدي0% بدون رأس على CreepJS؛ تم اجتياز Sannysoft وBrowserScan وCloudflare Turnstile المباشر، وكلهم كتثبيت Chrome عادي. |
تصحيحات قابلة للتدقيق34 فرقًا صغيرًا أحادي الغرض في |
متناسق بالبناءتحافظ V8 وBlink وBoringSSL الحقيقية على توافق المحرك ووكيل المستخدم وشكل TLS JA3/JA4: شخصية (persona) Windows على كومة متطابقة. |
شخصية قابلة للضبطملف ثنائي واحد، هوية Windows متحقق من تناسقها؛ مفاتيح |
تم الإصدار. شخصيات متناسقة لكل إطلاق، محصّنة.
toString() تبقى [native code])، ثابت عبر العوالم (الرئيسي / العامل / الإطار) — التناسق مدمج في المتصفح، وليس مُصححًا في JavaScript.```bash
pip install -U tilion-fortress # or: docker run --rm -p 9222:9222 tilion/fortress:latest**[→ ملاحظات الإصدار الكاملة](https://github.com/tiliondev/fortress/releases/tag/v151.0.7908.0)**
## المحتويات
| | |
|---|---|
| **[ما هو](#what-it-is)** · **[بداية سريعة](#quick-start)** | ما هو، التثبيت، أول سكريبت، إعداد وكيل الذكاء الاصطناعي |
| **[The Fortress MCP – stealth browsing as agent tools](#the-fortress-mcp--stealth-browsing-as-agent-tools)** | 29 أداة متصفح خفي لوكلاء الذكاء الاصطناعي (بيتا) |
| **[لماذا نصحح المحرك وليس الصفحة](#why-patch-the-engine-not-the-page)** | أطروحة JS المكشوفة ذاتيًا + طبقات الكشف الثلاث |
| **[كيف تقارن Fortress](#how-fortress-compares)** | مقابل puppeteer-stealth · Camoufox · CloakBrowser · البائعين المغلقين |
| **[إثبات: نتائج الكاشف المباشر](#proof-live-detector-results)** | CreepJS / Sannysoft / BrowserScan / Cloudflare مع لقطات الشاشة |
| **[تكوين الشخصية](#configure-the-persona)** | سطح بصمة `--uxr-*` |
| **[يعمل مع مجموعتك التقنية](#works-with-your-stack)** | browser-use · Crawl4AI · Stagehand · LangChain |
| **[بناء والتحقق](#build--verify)** | إعادة الإنتاج من المصدر، التحقق من الأصل |
| **[المرجع](#reference)** | استكشاف الأخطاء وإصلاحها · الأسئلة الشائعة · خارطة الطريق · تخطيط المستودع |
---
## ما هو
Fortress هو فرع من Chromium يقوم بتزييف بصمة المتصفح من داخل المحرك. يتم تصحيح الأسطح التي تقرأها كاشفات البوتات (canvas, WebGL, audio, fonts, navigator، وحوالي ثلاثين أخرى) في **C++** الخاص بـ Chromium، بدون طبقة تصحيح JavaScript موضوعة في الأعلى لتتمكن الصفحة من اكتشافها.
يتم شحنه كملف ثنائي متصفح عادي يعرض نقطة نهاية CDP. قم بتوجيه Playwright أو Puppeteer أو أي عميل CDP إليه وستعمل أتمتتك الحالية دون تغيير.
يترك تصحيح JavaScript الخفي طبقة إضافية يمكن للصفحة العثور عليها: يُظهر `.toString()` مصدر التجاوز، وإعادة الحصول على نفس البدائية من iframe أو worker تتجاوزها. تقوم Fortress بتصحيح السطح في المحرك بدلاً من ذلك، لذا فإن `navigator.vendor` يحل إلى getter C++ الحقيقي، ويبلغ عن `[native code]`، ويقرأ نفس القيمة من كل realm. الصفحة التي تفحص نفسها ترى Chromium العادي. لهذا السبب تمر أتمتتك حيث كانت تُعلم من قبل، وأي حظر متبقي يتبع إلى وكلائك وسلوكك وليس إلى المتصفح. [لماذا نصحح المحرك وليس الصفحة](#why-patch-the-engine-not-the-page) يغطي آليات الكشف بالكامل.```python
from tilion_fortress import Fortress
from playwright.sync_api import sync_playwright
with Fortress() as f: # launches the stealth engine on a CDP endpoint
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(f.cdp_url)
page = browser.new_page()
page.goto("https://bot.sannysoft.com")
page.screenshot(path="all-green.png")
import { Fortress } from "tilion-fortress";
import { chromium } from "playwright";