Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
fortress — محرك كروميوم متخفي يمنع برامج الكشط ووكلاء المتصفح من التعرض للحظر، بتغيير سطر واحد من الكود. | Kitploit
أدوات/GitHubGitHub/tiliondev/fortress
التهرب من IDS/IPSمكافحة الروبوتاتانتحال البصمة الرقمية
GitHubtiliondev/fortress

fortress

محرك كروميوم متخفي يمنع برامج الكشط ووكلاء المتصفح من التعرض للحظر، بتغيير سطر واحد من الكود.

عرض المستودع
43632منذ 27 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
Fortress

محرك متصفح واحد لحكمهم جميعًا

محرك Chromium خفي

Chromium pip npm Docker pulls
CreepJS Runtime.enable leak
Copy for agent llms.txt
MCP server npm tilion-mcp

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%

Fortress يجتاز تحدياً مباشراً لـ Cloudflare، ثم يجتاز sannysoft وBrowserScan

لقطة غير محررة لملف Fortress الثنائي في نافذة حقيقية: يجتاز تحدي Cloudflare المباشر، ويحوّل bot.sannysoft.com إلى اللون الأخضر بالكامل، ثم يُظهر BrowserScan “Normal”. أعد الإنتاج باستخدام tools/gauntlet.py.


🆕 ما الجديد — 151.0.7908.0 · تحديث المحرك

تم الإصدار. شخصيات متناسقة لكل إطلاق، محصّنة.

  • لوحة مفاتيح حسب الإعدادات الإقليمية (QWERTY / QWERTZ / AZERTY) · أجهزة وسائط لكل شخصية · تمريرة تناسق كاملة لتكافؤ التوصيل.
  • تتحرك المنصة ↔ GPU ↔ المنطقة الزمنية ↔ اللغة ↔ الأصوات ↔ لوحة المفاتيح كـ جهاز حقيقي واحد متناسق — في كل إطلاق، من ملف ثنائي واحد.
  • تكافؤ الكود الأصلي (toString() تبقى [native code])، ثابت عبر العوالم (الرئيسي / العامل / الإطار) — التناسق مدمج في المتصفح، وليس مُصححًا في JavaScript.```bash pip install -U tilion-fortress # or: docker run --rm -p 9222:9222 tilion/fortress:latest
root@kitploit:~
**[→ ملاحظات الإصدار الكاملة](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")
root@kitploit:~
import { Fortress } from "tilion-fortress";
import { chromium } from "playwright";

const f = await Fortress.launch();                      // stealth engine on a CDP endpoint
const browser = await chromium.connectOverCDP(f.cdpUrl);
const page = await browser.newPage();
await page.goto("https://browserscan.net");
await browser.close();
await f.close();

جولة الـ12 ثانية

Fortress في 12 ثانية: يجتاز CreepJS، Sannysoft، BrowserScan و rebrowser، يستخرج بيانات المواقع الحقيقية، ويتجاوز Akamai على aa.com، lowes.com، macys.com و kohls.com.

حلقة واحدة، جميع التسجيلات حقيقية: يجتاز CreepJS / Sannysoft / BrowserScan / rebrowser → يستخرج البيانات المنظمة عبر CDP → يتجاوز Akamai على aa.com · lowes · macys · kohls (نفس عنوان IP السكني).

سكب حقيقي، بلا رأس بالكامل

لقطات غير معدلة لمحرك Fortress يتم تشغيله عبر CDP. لا توجد إضافات خفية، لا تصحيحات JavaScript: تم تصحيح البصمة في الثنائي. يمكنك إعادة إنتاج أي من هذه باستخدام examples/scrape_demos.py.

Fortress يقوم باستخراج books.toscrape.com إلى سجلات JSON مصنفة مباشرة عبر CDP

استخراج منظم: يتم بناء السجلات إلى JSON مصنف مع قراءة كل عنصر.

يتجاوز Akamai الحقيقي — قبل / بعد

قبل: متصفح عادي يتم حظره بواسطة Akamai على aa.com مع Access Denied. بعد: Fortress يقوم بتحميل الصفحة الحقيقية ويقبل مستشعر Akamai ذلك.

نفس عنوان IP السكني، نفس الموقع (aa.com · Akamai Bot Manager). متصفح عادي/بلا رأس يحصل على Access Denied (Reference #); Fortress يقوم بتحميل الصفحة الحقيقية ويصدر Akamai ملف تعريف ارتباط المستشعر _abck — يقبله Bot Manager كمتصفح حقيقي. المتغير هو البصمة، وليس عنوان IP.


Quick start```bash

Python / Node: prebuilt native binary auto-fetched (Linux x64 & Windows x64), SHA-256 verified

pip install tilion-fortress npm install tilion-fortress

Any OS via Docker: raw CDP on :9222 (~302 MB pull / 851 MB on disk, stripped single-layer)

docker run --rm -p 9222:9222 tilion/fortress:latest

Portable bundle (extract-and-run, like a Chromium snapshot)

tar xzf tilion-fortress-linux-x64.tar.gz # Linux ./tilion-fortress/tilion --headless=new --remote-debugging-port=9222 --user-data-dir=/tmp/p

Debian / Ubuntu

sudo apt install ./tilion-fortress_151.0.7908.0_amd64.deb && tilion https://example.com

root@kitploit:~
> [!TIP]
> تأتي حزمة SDK مع البناء المُجمَّع **بالإضافة إلى `patches/`**، مما يسمح لك بإعادة بناء المحرك بنفسك والتحقق من كل تصحيح سطحي مقابل المصدر. يتم التحقق من التنزيلات باستخدام SHA-256 مقابل ملف `SHA256SUMS` الخاص بالإصدار تلقائياً.

### الإصدارات

يُصدر Fortress على **قاعدتين كروميوم** — اختر المفاضلة بين الاندماج والحداثة:

| القناة | كروميوم | متى تستخدم |
|---|---|---|
| **`stable`** *(افتراضي)* | **149** | موصى به — يتطابق مع إصدار كروم الذي يستخدمه غالبية المستخدمين الحقيقيين، لذا فهو ينصهر بشكل أفضل |
| **`latest`** | **151** | أحدث محرك (يُبلغ عن إصدار متقدم قليلاً عن المستقر) |```python
Fortress().start()                     # Python: stable (149) by default
Fortress(channel="latest").start()     # opt into 151
root@kitploit:~
await Fortress.launch();               // Node: stable (149) by default
await Fortress.launch({ channel: "latest" });
root@kitploit:~
docker run --rm -p 9222:9222 tilion/fortress:149   # or :151
# or set FORTRESS_CHANNEL=latest for either SDK

الملفات الثنائية الأصلية: Linux x64 (كلا الإصدارين) + Windows x64 (151); إصدار Windows-149 وmacOS يتم تشغيلهما عبر صورة Docker.

قم بوضعه في وكيل الذكاء الاصطناعي الخاص بك

Fortress هو المتصفح الذي يقوده وكيلك: CDP الخام على المنفذ :9222، بدون إضافات تمويه للربط. هناك طريقتان للدخول.

الخيار 1: افتحه محملاً مسبقًا في مساعد الدردشة. نقرة واحدة؛ سيقرأ AGENTS.md وسيرشدك خلال عملية الإعداد بأكملها:

اسأل ChatGPT اسأل Claude اسأل Gemini

الخيار 2: نسخ للوكيل (كل شيء، إلى الحافظة الخاصة بك). انقر على أيقونة النسخ في أعلى يمين المربع أدناه. ستضع سياق الإعداد بأكمله في حافظتك: ما هو، التثبيت، الاتصال، الشخصية، والقواعد، كل ما في AGENTS.md بشكل مكثف. الصقه في Cursor، Claude Code، Copilot، ChatGPT، أو أي وكيل وسيتولى الباقي من هناك:```text You're setting up Fortress, an open-source STEALTH Chromium engine, for browser automation. It corrects the browser fingerprint (canvas, WebGL, audio, fonts, navigator, +30 more) in Chromium's C++ and exposes raw CDP on http://localhost:9222, a drop-in for Playwright/Puppeteer. Do NOT add puppeteer-stealth or any JS fingerprint patching (it self-reveals and undoes Fortress).

LAUNCH (pick one; all expose CDP on http://localhost:9222): Docker: docker run -d --rm -p 9222:9222 tilion/fortress:latest Python: pip install tilion-fortress then from tilion_fortress import Fortress; f=Fortress(); f.start() Node: npm install tilion-fortress then import {Fortress} from "tilion-fortress"; const f=await Fortress.launch()

CONNECT (keep my existing automation code): Playwright(py): browser = p.chromium.connect_over_cdp("http://localhost:9222") Playwright(js): const browser = await chromium.connectOverCDP("http://localhost:9222") Puppeteer(js): const browser = await puppeteer.connect({ browserURL: "http://localhost:9222" }) browser-use / Crawl4AI / Stagehand / LangChain: point their CDP endpoint at http://localhost:9222

PERSONA (optional; default is a coherent Windows identity). Override any surface with --uxr-* flags: --uxr-timezone=America/New_York --uxr-hw-concurrency=16 --uxr-languages=en-US,en

RULES:

  1. Drive over raw CDP (:9222); don't spawn chromedriver.
  2. Never pass --user-agent (use --uxr-ua-*); it desyncs UA vs UA-Client-Hints.
  3. No puppeteer-stealth / undetected-chromedriver / JS fingerprint patches.
  4. Blocked ~90% = my IP (datacenter), not the fingerprint. Use a residential/mobile proxy, then retry.

Now walk me through launching Fortress and wiring my automation to it. Full guide: https://github.com/tiliondev/fortress/blob/main/AGENTS.md

root@kitploit:~
---

## The Fortress MCP — تصفح متخفي كأدوات وكيل &nbsp;<sub>Beta</sub>

بروتوكول CDP الخام مخصص للكود الذي تكتبه. أما **Fortress MCP** فهو للوكلاء الذين يستدعون **الأدوات**: خادم [بروتوكول سياق النموذج](https://modelcontextprotocol.io) يمنح Claude أو Cursor أو أي عميل MCP متصفحًا متخفيًا، بحيث بمجرد حظر جلب (fetch)، فإنه يستدعي أداة ويحصل على الصفحة. **29 أداة، محلية ومجانية** — `fetch_protected_page`, `extract_page`, `crawl_site`, `recon_site_apis`, `search_web`, `run_browser_task`, `save_profile`, `get_stealth_cdp_endpoint`, والمزيد.

<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/795/8f328e2498b09d7433208c5b4a9002450643537f2ee6b0519ac10420ef581bf3.gif" alt="نفس الموقع، نفس الطلب: متصفح عادي محظور بواسطة PerimeterX بينما وكيل مع Fortress MCP يعيد JSON نظيفًا" width="760"/></p>

<sub><i>تشغيل حقيقي ومؤرخ ضد <b>stockx.com</b> (PerimeterX). المتصفح العادي يحصل على <b>HTTP 403 — "تم رفض الوصول"</b>؛ وكيل مع Fortress MCP يعيد JSON نظيفًا — نفس الموقع، نفس الطلب. أعد إنتاجه من مستودع الإطار.</i></sub>

### قم بإعداده في 30 ثانية

خياران للتشغيل — اختر واحدًا. يحتاج `npx` إلى Python في PATH؛ `pip` يقوم بتثبيته مباشرة:```bash
pip install "tilion[mcp]"      # command:  tilion-mcp
#   —or, zero-install—
npx -y tilion-mcp              # auto-runs the server via uv (no global install)

Claude Desktop — الإعدادات → المطور → تحرير التكوين (claude_desktop_config.json):```json { "mcpServers": { "fortress": { "command": "tilion-mcp" } } }

root@kitploit:~
<sub>هل تفضل npx؟ استخدم <code>"command": "npx", "args": ["-y", "tilion-mcp"]</code>. أعد تشغيل Claude، وستظهر أدوات <b>الحصن</b>.</sub>

**Claude Code** (CLI) — سطر واحد:```bash
claude mcp add fortress -- tilion-mcp          # or:  claude mcp add fortress -- npx -y tilion-mcp

Cursor (~/.cursor/mcp.json) · Cline / Windsurf (VS Code → خوادم MCP) — نفس الكتلة:```json { "mcpServers": { "fortress": { "command": "tilion-mcp" } } }

root@kitploit:~
ثم فقط اطلب من وكيلك — *"احصل على السعر من صفحة StockX هذه"* — وسيقوم باستدعاء `fetch_protected_page` بنفسه.

### ما يحصل عليه الوكيل

| | tools |
|---|---|
| **الحصول على الصفحات المحجوبة** | `fetch_protected_page` · `read_page` · `get_page_html` · `search_web` |
| **البيانات المنظمة** | `extract_page` (مدرك للمخطط) · `extract_document` (PDF/DOCX/XLSX) |
| **المواقع الكاملة** | `crawl_site` (SPA تلقائي) · `recon_site_apis` (العثور على API JSON الخاص) |
| **قيادة صفحة** | `page_elements` · `click_button` · `fill_field` · `press_key` · `wait_for` · `evaluate_js` |
| **التدفقات متعددة الخطوات** | `run_browser_task` (تسجيل الدخول، الترقيم، التمرير اللانهائي، الدفع، …) |
| **التقاط / مصادقة** | `screenshot_page` · `save_page` · `download_file` · `save_profile` / `load_profile` |
| **أحضر بنفسك** | `get_stealth_cdp_endpoint` → عنوان CDP لـ Playwright / Puppeteer / browser-use |

الأدوات موضحة (القراءة موافقة تلقائية، الكتابة بوابة)، **مسخنة مسبقًا** عند بدء التشغيل (~100 مللي ثانية للمكالمة الأولى)، آمنة للتوازي، ومحمية من المهلة وهجمات SSRF. قريبًا سيتم توفير نقطة نهاية مستضافة مع **خروج سكني**.

→ الجدول الكامل بأدوات 29، والمعايير، ومهارة الوكيل: **[`mcp/`](https://github.com/tiliondev/fortress/blob/HEAD/mcp/README.md)**

---

## لماذا نصلح المحرك وليس الصفحة

النهج المعتاد يصلح `navigator.webdriver`، ويزور بائع WebGL، ويعيد تعريف `navigator.plugins` من السكريبت. لا يزال CreepJS وأجهزة الكشف المماثلة تكتشفه، والسبب **هيكلي**، وليس مجرد خاصية أخرى لم تُغطى. التزوير في JavaScript هو دالة تقف حيث تنتمي دالة أصلية. تضع أجهزة الكشف القيمة المُعادة جانبًا وتستفسر عما إذا كان الشيء الذي يعيدها أصليًا:

| الإشارة | لماذا تكتشف التزوير في JS |
|---|---|
| `toString` كشف الذات | الدالة الأصلية تُسلسل إلى `function get vendor() { [native code] }`؛ التزوير يُسلسل إلى مصدره الخاص، لذا `.toString()` واحد يكتشفه. |
| الواصف و `hasOwnProperty` | `getOwnPropertyDescriptor` يكشف الخصائص المُعاد تعريفها، و `hasOwnProperty('toString')` يُرجع `true` على دالة معدلة بينما الأصلية تُرجع `false`. |
| `failsTypeError` | الدوال الأصلية للمُحصل ترمي `TypeError` محددة على `this` الخاطئ؛ التزوير الساذج يبقى صامتًا، والصمت هو الإشارة. |

إعادة اكتساب العالم (Realm re-acquisition) هي التي تهزم كل تصحيحات العالم الرئيسي. يلتقط الكاشف أولية نقية من عالم آخر ويوجهها إلى دالتك:```js
const iframe = document.createElement('iframe'); document.body.appendChild(iframe);
const realToString = iframe.contentWindow.Function.prototype.toString;
realToString.call(navigator.__lookupGetter__('vendor')); // returns your source code. Caught.

يقع تصحيحك للعالم الرئيسي في عالم مختلف عن ذلك الإطار المضمن. يتم تشغيل نفس الفخ من عامل ويب (Web Worker)، وهو خيط يعمل بجانب خيط التظليل الرئيسي بجانب بدلاً من داخل.

ليس لدى Fortress مثل هذه الطبقة. إن getter الخاص بـ navigator.vendor هو getter C++: يبلغ عن [native code] لأنه كود أصلي، متطابق عبر كل عالم. يعبر Camoufox عن ذلك جيدًا: "لا يوجد اختطاف جافا سكريبت يمكن اكتشافه." تطبق Fortress نفس الفكرة على V8 وBlink بدلاً من Gecko.

الطبقات الثلاث لكشف البوتات، ومكان Fortress فيها

تقرأ مضادات البوتات الحديثة (Cloudflare وDataDome وKasada وHUMAN وAkamai) ثلاثة أسطح مختلفة هيكليًا، في ثلاثة أماكن منفصلة. نادرًا ما تعالج أداة واحدة الثلاثة جميعًا:

Fortress هي محرك الطبقة ج، مبني ليتم قيادته بحيث تصمد الطبقتان أ وب أيضًا. الثنائية وحدها تترك قناة CDP مفتوحة. هذا الجزء يقع على طبقة التحكم، والتظاهر بغير ذلك هو ما يجعلك تُكتشف.


مقارنة Fortress

تبني Fortress على أعمال سابقة حقيقية: fingerprint-chromium و ChromiumFish و CloakBrowser جاءت أولاً، ويعيد البائعون التجاريون (Multilogin وKameleo وGoLogin وAdsPower وBrowserbase وSurfsky) ترجمة Chromium خلف أبواب مغلقة. معظم هذا العمل يبقى مغلقًا: فالتفرعات خلف جدار الدفع تمنحك ثنائية وتطلب منك الوثوق بها، ويبقي البائعون تصحيحاتهم داخل الشركة.

تسير Fortress في الاتجاه الآخر، لأن المحرك الخفي يبقى مفيدًا فقط عندما يستطيع الأشخاص الذين يعتمدون عليه رؤية كيف يعمل. كل تصحيح سطح موجود في patches/ كفرق صغير أحادي الغرض يمكنك قراءته في دقيقة واحدة، ويعاد بناء المحرك بالكامل من المصدر بسكريبت واحد. عندما يجد كاشف مؤشرًا جديدًا، تتعقب التصحيح، وتصلحه، وتعيد إرساله. حلقة التغذية الراجعة هذه هي الهدف، وهي تعمل فقط طالما بقى المحرك مفتوحًا بما يكفي ليُقرأ ويُمد ويُعاد بناؤه.


الدليل: نتائج الكاشفات الحية

أعد إنتاج أي صف باستخدام tools/gauntlet.py --bundle ./tilion-fortress. تم التحقق من الكاشفات الحية؛ التواريخ في docs/GAUNTLET_RESULTS.md.

الدليل: لقطات شاشة حقيقية غير محررة
BrowserScanCreepJSCloudflare

تهيئة الشخصية

تحمل الثنائية سلسلة علامة فارغة؛ يطبق المشغل الشخصية الافتراضية المتسقة لنظام Windows. تجاوز أي سطح باستخدام مفاتيح --uxr-*، أو عيّن TILION_NO_DEFAULTS=1 للإطلاق العاري.``` --uxr-platform / --uxr-ua-platform / --uxr-ua-os / --uxr-ua-arch / --uxr-ua-bitness --uxr-ua-platform-version / --uxr-ua-brand / --uxr-hw-concurrency / --uxr-device-memory --uxr-webgl-vendor / --uxr-webgl-renderer / --uxr-webgl-fullparams --uxr-canvas-seed / --uxr-audio-seed / --uxr-timezone / --uxr-languages --uxr-screen-width / --uxr-screen-height / --uxr-webrtc-policy=disable_non_proxied_udp

root@kitploit:~
| متغير البيئة | الغرض |
|---|---|
| `TILION_NO_DEFAULTS=1` | تخطي الشخصية الافتراضية (إطلاق مجرد) |
| `TILION_TZ` / `TILION_LANG` | تجاوز سريع للمنطقة الزمنية / اللغة |

> [!NOTE]
> **الشخصية تعمل عبر سطر الأوامر اليوم.** إن مفاتيح `--uxr-*` قابلة للقراءة عالميًا عبر `/proc/<pid>/cmdline`، لذا فهي شخصية واحدة لكل إطلاق ومرئية للعمليات الأخرى على المضيف. وقت تشغيل `MaskConfig` قادم بعد ذلك: فهو يسلم الشخصية عبر IPC ويرفع الحد الأقصى لشخصية واحدة لكل عملية (انظر [ما هو التالي](#whats-next)).

---

## يعمل مع مجموعتك التقنية

يكشف Fortress عن CDP الخام على `:9222`، لذا فهو يعمل تحت أي شيء يستخدم Playwright أو Puppeteer أو CDP.

| الإطار | الاتصال عبر |
|---|---|
| [**browser-use**](https://github.com/browser-use/browser-use) (حوالي 70 ألف نجمة) | `cdp_url="http://localhost:9222"` |
| [**Crawl4AI**](https://github.com/unclecode/crawl4ai) (حوالي 58 ألف نجمة) | نقطة نهاية CDP |
| [**Stagehand**](https://github.com/browserbase/stagehand) (حوالي 21 ألف نجمة) | `connectOverCDP` |
| مجموعة أدوات [**LangChain**](https://github.com/langchain-ai/langchain) Playwright | Playwright CDP |
| **Playwright / Puppeteer** (Python و JS) | `connect_over_cdp` / `connect` |```python
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp("http://localhost:9222")   # Fortress under the hood

بناء وتحقق

أعد الإنتاج من المصدر```bash

export CHROMIUM_VERSION=$(cat CHROMIUM_VERSION) build/build.sh # depot_tools, sync the tag, apply patches, gn gen, ninja build/rebase-monthly.sh 152.0.XXXX.0 # bump + 3-way apply + rebuild + gauntlet-gate

root@kitploit:~
المخرجات: `out/Fortress/chrome`. التفرع يتكون من 34 رقعة صغيرة أحادية السطح (`patches/`)، لذا معظمها يُعاد تطبيقها بسلاسة عبر إصدارات المنبع؛ ثم يمنع gauntlet الإصدار في حالة وجود أي تراجع.

| المنصة | الحالة |
|---|---|
| Linux x64 (أصلي) · **Windows x64 (أصلي)** · أي نظام تشغيل عبر Docker | <img src="https://raw.githubusercontent.com/tiliondev/fortress/HEAD/docs/assets/icons/check.svg" width="15" alt="yes"> **قيد الشحن** |
| مثبتات موقعة رمزياً · macOS `.app` · `linux/arm64` | قيد التنفيذ |

### تأكد من أنها لنا حقًا

يتم شحن Fortress من أربع قنوات رسمية. تعامل مع أي شيء آخر على أنه غير موثوق:

| | المصدر الرسمي |
|---|---|
| **المصدر** | [github.com/tiliondev/fortress](https://github.com/tiliondev/fortress) |
| **Docker** | [`tilion/fortress`](https://hub.docker.com/r/tilion/fortress) |
| **Python** | [`tilion-fortress`](https://pypi.org/project/tilion-fortress/) |
| **Node** | [`tilion-fortress`](https://www.npmjs.com/package/tilion-fortress) |

**تحقق من التنزيل.** كل إصدار يشتمل على `SHA256SUMS`، وتقوم أدوات `pip`/`npm` بتشغيلها لك عند التثبيت:```bash
BASE=https://github.com/tiliondev/fortress/releases/download/v151.0.7908.0
curl -LO $BASE/tilion-fortress-linux-x64.tar.gz
curl -Ls $BASE/SHA256SUMS | sha256sum -c --ignore-missing     # -> OK

التحقق من صورة Docker باستخدام digest (وليس فقط الوسم):```bash docker pull tilion/fortress:151.0.7908.0 docker inspect --format '{{index .RepoDigests 0}}' tilion/fortress:151.0.7908.0

compare the printed sha256:... against the digest in the GitHub Release notes

root@kitploit:~
**أو لا تثق بشيء وأعد بنائه.** تحتوي الشوكة بأكملها على 34 تصحيحًا قابلًا للقراءة في `patches/`؛ يقوم `build/build.sh` بإعادة إنتاج الثنائي من مصدر كروميوم، لذا يمكنك مقارنة ما بنيته مع ما نرسله.

---

## مرجع

<details><summary><b>استكشاف الأخطاء وإصلاحها</b></summary>

<br/>

**لا يزال محظورًا على Cloudflare أو DataDome أو Kasada.** في معظم الأحيان، يكون هذا هو **عنوان IP** الخاص بك، وليس بصمتك: حيث يتم وضع علامة على نطاق مركز البيانات قبل تشغيل أي نص للصفحة. وجّه حركة المرور الخارجة عبر بروكسيات سكنية أو محمولة وأعد المحاولة؛ إذا تمت إزالة الحظر، فالبصمة كانت جيدة.

**تبدو البصمة غير صحيحة على مضيف لينكس.** الشخصية الافتراضية هي Windows، ولكن شكل TLS وبعض الإشارات الموجهة لنظام التشغيل تتبع الجهاز الأساسي. طابق الشخصية مع نظام تشغيل الخروج، أو قم بتعيين العلامات `--uxr-*` المناسبة بحيث يتوافق سرد نظام التشغيل مع مكان مغادرة حركة المرور منه.

**macOS يسحب صورة Docker.** يتم توزيع ثنائيات لينكس الأصلي وويندوز اليوم؛ لا يزال macOS يشغل Fortress عبر صورة Docker الرسمية (`tilion/fortress`). قم بتثبيت Docker Desktop، أو قم بتشغيله على لينكس/ويندوز x64 للحصول على الثنائي الأصلي.

**تظهر الشخصية في `/proc/<pid>/cmdline`.** العلامات `--uxr-*` قابلة للقراءة بواسطة عمليات أخرى على المضيف، شخصية واحدة لكل إطلاق. حتى يتم تطبيق `MaskConfig` في وقت التشغيل، احتفظ بشخصية واحدة لكل عملية وتجنب مشاركة المضيف مع كود غير موثوق.

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

</details>

<details><summary><b>الأسئلة الشائعة</b></summary>

<br/>

**هل هذا قانوني؟** Fortress هو مشروع هندسة متصفح للأتمتة المشروعة والاختبار وتجميع البيانات المتاحة للجمهور. احترم شروط الخدمة لكل موقع والقوانين في منطقتك.

**هل هو حقًا مجاني؟** نعم. BSD-3، مفتوح بالكامل، وقابل للاستضافة الذاتية. سلسلة التصحيحات منشورة، لذا يمكنك بناء المحرك الحالي من المصدر بنفسك.

**لماذا لا نستخدم فقط puppeteer-stealth أو undetected-chromedriver؟** يقومان بتصحيح طبقة JS/CDP *بعد* أن تتمكن الصفحة من فحص المتصفح، لذا يكشفان عن أنفسهما عبر `toString` وإعادة الحصول على النطاق. ينقل Fortress التزييف إلى C++، حيث تجد الصفحة كودًا أصليًا. (انظر "لماذا نصحح المحرك، وليس الصفحة.")

**كيف يختلف هذا عن Camoufox؟** نفس فكرة الاعتراض في C++. يقوم Camoufox بتفرع Firefox (حوالي 3% من حركة المرور، شذوذ ثابت) بينما يقوم Fortress بتفرع Chromium و V8 (المحرك الأغلبية)، لذا فإن وكيل مستخدم Chrome متماسك بالبناء.

**هل سيتجاوز كل شيء إلى الأبد؟** لا. طرق الكشف تتطور باستمرار، لذا نرسل اختبارًا قاسيًا مؤرخًا وقابلًا للتكرار وإعادة بناء شهري لكروميوم؛ يمكنك دائمًا رؤية ما يعمل بالضبط اليوم.

</details>

<details><summary><b>خريطة الطريق</b></summary>

<br/>

- [ ] تكوين JSON في وقت التشغيل إلى `MaskConfig` في C++ (ثنائي واحد، بصمات متماسكة متعددة، لا شيء على سطر الأوامر)
- [ ] خادم MCP من الطرف الأول بالإضافة إلى Puppeteer / حزم SDK لـ raw-CDP (بديل جاهز لوكلاء الذكاء الاصطناعي)
- [ ] ملفات `.exe` لـ Windows و `.app` لـ macOS موقعة برمجيًا
- [ ] `linux/arm64` Docker image
- [ ] نقل `patches/` إلى تجاوزات على نمط Brave في `chromium_src/`
- [ ] نشر صفوف معايير reCAPTCHA v3 / DataDome / Kasada (مؤرخة وقابلة للتكرار)

</details>

<details><summary><b>تخطيط المستودع</b></summary>```
patches/     34 per-surface C++ patches (+ series), the source of truth for the fork
build/       args.gn, build.sh, apply-patches.sh, rebase-monthly.sh, windows/, macos/
packaging/   tilion launcher, fonts.conf, Dockerfile, .deb + bundle builders
fonts/       33 metric-compatible Windows-named fonts (incl. color emoji)
sdk/         python + node (tilion-fortress) prebuilt-binary SDKs
tools/       gauntlet.py, the CreepJS / Sannysoft / BrowserScan CI gate
docs/        GAUNTLET_RESULTS, BUILD_NATIVE, BENCHMARK

المساهمة

وجدت متجه اكتشاف أو تسريب فاتنا؟ افتح مشكلة (issue) مع صفحة اختبار قابلة للتكرار. الصفحة التي تكتشف Fortress بشكل موثوق هي أثمن ما يمكنك إرساله. تصبح التصحيح التالي. قاعدتان أساسيتان: كل ادعاء بقدرة يأتي مع أمر يعيد إنتاجه، وكل حد مكتوب. كلمة "غير قابل للاكتشاف" تبقى خارج المستودع.

الترخيص

BSD-3-Clause لتصحيحات Fortress والأدوات (مطابقة لـ Chromium). Chromium والخطوط المضمنة تحتفظ بتراخيصها الخاصة؛ انظر LICENSE و NOTICE. سلسلة التصحيحات منشورة، لذا يمكنك تدقيق وإعادة بناء المحرك بنفسك.


ما التالي

[!IMPORTANT] v2: شخصيات وقت التشغيل MaskConfig. رسم بياني للشخصيات مدفوع بـ IPC ومعتمد على بذرة يغذي مفردة MaskConfig عالمية العملية بلغة C++: آلاف البصمات الثابتة التماسك من ملف ثنائي واحد، عزل الهوية لكل BrowserContext، وبصمة سطر أوامر صفرية. الباقي على خريطة الطريق.

البقاء على اطلاع

الاكتشاف يتغير باستمرار، لذا فإن محرك التخفي جيد بقدر آخر إعادة أسس (rebase). يتتبع Fortress أحدث إصدار من Chromium شهريًا، ويعيد تشغيل مجموعة الاختبارات الكاملة، ويصدر تصحيحًا كلما وجد كاشف مؤشرًا جديدًا، بحيث يظل ما تشغله مطابقًا لما يبدو عليه تثبيت Chrome حقيقي. شاهد الإصدارات لمتابعة عمل v2 MaskConfig، أو قم بتمييز المستودع إذا كان مفيدًا لك.

مخطط تاريخ النجوم

تخفي يمكنك قراءته وإعادة بنائه وتشغيله بنفسك.

تنزيل الأداة
CreepJS
بدون رأس / خفي

[native code]

عبر كل
مجال

BSD-3

محرك مفتوح،
أعد بناؤه بنفسك

تكافؤ الكود الأصلي

كل محصل مزيف هو محصل C++: toString يعيد [native code]، ثابت عبر العوالم عبر الإطار الرئيسي والإطارات الفرعية وWeb Workers.

CDP بالتوصيل المباشر

CDP خام بنمط nodriver على :9222، بدون تسريب Runtime.enable. احتفظ بـ Playwright أو Puppeteer أو أي عميل CDP؛ بدّل المتصفح، واحتفظ بالكود الخاص بك.

يجتاز التحدي

0% بدون رأس على CreepJS؛ تم اجتياز Sannysoft وBrowserScan وCloudflare Turnstile المباشر، وكلهم كتثبيت Chrome عادي.

تصحيحات قابلة للتدقيق

34 فرقًا صغيرًا أحادي الغرض في patches/. اقرأ واحدًا في دقيقة؛ أعد بناء المحرك بسكريبت واحد.

متناسق بالبناء

تحافظ V8 وBlink وBoringSSL الحقيقية على توافق المحرك ووكيل المستخدم وشكل TLS JA3/JA4: شخصية (persona) Windows على كومة متطابقة.

شخصية قابلة للضبط

ملف ثنائي واحد، هوية Windows متحقق من تناسقها؛ مفاتيح --uxr-* تلغي أي سطح: GPU، الشاشة، المنطقة الزمنية، الأجهزة، تلميحات العميل (Client-Hints).

Fortress يقوم بالتنقل التلقائي بين صفحات quotes.toscrape.com
تنقل تلقائي بين الصفحات: 30 اقتباس عبر 3 صفحات.
Fortress يقوم بالزحف العميق لصفحة تفاصيل المنتج
زحف عميق للتفاصيل: UPC · السعر · الضريبة · المخزون · المراجعات.
Fortress يتجاوز Akamai على lowes.com
lowes.com · محظور → تم التجاوز
Fortress يتجاوز Akamai على macys.com
macys.com · محظور → تم التجاوز
Fortress يتجاوز Akamai على kohls.com
kohls.com · محظور → تم التجاوز

ليست صدفة موقع واحد — نفس القبل/بعد على تجار تجزئة رئيسيين محميين بـ Akamai، كل تشغيل من نفس عنوان IP السكني.

نسخ للوكيل
الطبقةالمؤشراتمكان المعالجةFortress
أ: القطع الأثرية للسائق/الثنائيةمتغيرات cdc_ الخاصة بـ ChromeDriver، سطح بروتوكول WebDriverقد CDP الخام، تخطى chromedriveryes مبني ليتم قيادته بهذه الطريقة
ب: الآثار الجانبية لـ CDPRuntime.enable يُسرّب عبر sourceURL وبصمات النصوص الأولية، مهما كانت الثنائية نظيفةطبقة التحكم / CDP-client: أمسك Runtime.enable، استخدم Runtime.addBinding + العوالم المعزولةyes لا تسرب (مُتحقّق)
ج: سطح البصمةcanvas وWebGL والصوت والخطوط وnavigator، عبر الإطار الرئيسي والإطارات المضمنة والعمالالمحرك (C++)، لأن تجاوزات JavaScript تكشف نفسهاyes هذه هي Fortress
Playwright العاديpuppeteer-extra-stealthundetected-chromedriverCamoufoxCloakBrowserFortress
طبقة التزييفلا شيءحقن جافا سكريبتتصحيح CDP/إعداداتمحرك C++محرك C++محرك C++
toString يُنتج [native code]لا ينطبقnoلا ينطبقyesyesyes
يتحمل إعادة اكتساب العوالم (iframe/worker)nononoyesyesyes
لا تسرب لـ Runtime.enablenonopartialyesyesyes
المحرك = Chrome / V8 (معظم حركة المرور)yesyesyesno Firefoxyesyes
شكل TLS متسق لـ Chromiumyesyesyesno Firefoxyesyes
محرك مفتوح المصدر بالكاملyesyesyesyespartial أحدث إصدار رئيسي خلف جدار الدفعyes
سلسلة تصحيحات منشورة وقابلة للتدقيقلا ينطبقلا ينطبقلا ينطبقyespartial ثنائي فقطyes
بناء قابل للتكرار من المصدرلا ينطبقلا ينطبقلا ينطبقyesnoyes
يذكر حدوده الخاصةلا ينطبقلا ينطبقلا ينطبقyesnoyes
المجموعةChromium العاديFortress
CreepJSتم الإبلاغ عنه كـ headless0% headless · 0% stealth، إشارات العامل متسقة
bot.sannysoft.comصفوف حمراء0 فشل · اختبار WebDriver Advanced نجح · WebGL = NVIDIA RTX 3060 / ANGLE D3D11
browserscan.netتم اكتشاف البوت"لم يتم اكتشاف بوتات، قد يكون إنسانًا"
rebrowser bot-detectorتسرب Runtime.enableلا تسرب · webdriver=false · نصوص أولية نظيفة (CDP خام)
Cloudflare Turnstileمحظورتم تجاوزه: نقرة بشرية أزالت تحديًا حيًا (headed، عنوان IP لمركز بيانات)